# HG changeset patch # User gdesjardins # Date 1283540483 14400 # Node ID 91916536a3046ee5bfc22f4b2bd1decb5e5c94a8 # Parent 790376d986a37a69de3e71201b7db7936e63569f# Parent af80b7d182af3746a12c602c66ac37dbd9c3a4c2 merge diff -r af80b7d182af -r 91916536a304 doc/v2_planning/sampler.txt --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/v2_planning/sampler.txt Fri Sep 03 15:01:23 2010 -0400 @@ -0,0 +1,39 @@ +OVERVIEW +======== + +Before we start defining what a sampler is and how it should be defined in +pylearn, we should first know what we're up against. + +The workflow I have in mind is the following: +1. identify the most popular sampling algorithms in the litterature +2. get up to speed with methods we're not familiar with +3. identify common usage patterns, properties of the algorithm, etc. +4. decide on an API / best way to implement them +5. prioritize the algorithms +6. code away + +1.BACKGROUND +============= + +This section should provide a brief overview of what exists in the litterature. +We should make sure to have a decent understanding of all of these (not everyone +has to be experts though), so that we can *intelligently* design our sampler +interface based on common usage patterns, properties, etc. + +Sampling from basic distributions +* already supported: uniform, normal, binomial, multinomial +* wish list: beta, poisson, others ? + +List of sampling algorithms: + +* inversion sampling +* rejection sampling +* importance sampling +* Markov Chain Monte Carlo +* Gibbs sampling +* Metropolis Hastings +* Slice Sampling +* Annealing +* Parallel Tempering, Tempered Transitions, Simulated Tempering +* Nested Sampling (?) +* Hamiltonian Monte Carlo