Overview• Overview
• Problem Statement
• Random Number Generators
• Quasi-Random Number Generation
• Uniform sampling of Disks, Triangles, Spheres
• Stratified Sampling
• Importance Sampling of General Functions
Problem Statement
• What is sampling?– Want to Take a function f and recreate it using
only certain values• e.g. data points used in interpolation
• where to pick those points?
– Sometimes don’t know f but can evaluate it• would like to choose data points used to reconstruct
function in an optimal way
Problem Statement (ctd)
• Monte Carlo Integration– 2 ways to improve
• improve estimation method• carefully selecting samples******
• Use filtering to recreate original function– covered next time
– important to know necessary sampling frequency
Overview of Sampling
• Over some domain– Sometimes parametrizable
• Some sample density
• Random / Regular
Random Numbers
• Would like to get uniformly distributed random numbers over a range [a,b]
• Problems– large open spaces – slow convergence– nondeterministic
RNG methods
• Non-linear additive feedback
• Linear congruence methods
• Mersenne Twister algorithm
• many more...
Quasi-Monte Carlo
• Use deterministic roughly uniform aperiodic distribution through domain– I.e. pseudo-random numbers
• Want low discrepancy – small = evenly distributed – large = clustering
• causes clumping and sparse regions
• Want high speed
Halton Sequence
• N-dimensional points xi
xm = (2(m), 3(m),…, PN-1(m), PN(m))
PI = ith prime number (2,3,5,7,…)
r(m) is the radical-inverse function of m to the base r. The value is obtained by writing m in base r and then reflecting the digits around the decimal point.
2610 = 110102 reflecting 0.010112 = 11/2710
Halton Sequence
• N-dimensional points xi
xm = (2(m), 3(m),…, PN-1(m), PN(m))
PI = ith prime number (2,3,5,7,…)
m = a0r0 + a0r1 + a0r2 + a0r3 + ...
r(m) = a0r-1 + a0r-2 + a0r-3 + a0r-4 + ...
Halton Sequence
• Starting at (1,1,…,1) better than starting at (0,0,…,0)
1 = 1.0 => 0.1 = 1/2
2 = 10.0 => 0.01 = 1/4
3 = 11.0 => 0.11 = 3/4
4 = 100.0 => 0.001 = 1/8
5 = 101.0 => 0.101 = 5/8
6 = 110.0 => 0.011 = 3/8
7 = 111.0 => 0.111 = 7/8
Notice even distribution
Hammersley Sequence
• Similar to Halton
xm = (m/N,2(m), 3(m),…, PN-1(m))
PI = ith prime number (2,3,5,7,…)
m = a0r0 + a0r1 + a0r2 + a0r3 + ...
r(m) = a0r-1 + a0r-2 + a0r-3 + a0r-4 + ...
Where N is number of total samples
Poisson Random Numbers
• Generate random numbers according to the Poisson distribution function
This turns out to be the same as just “throwing darts”**
Result of RNGs
• Basically, now we have random numbers in [0,1]– what do we do with these?– How does this relate to sampling?
Uniform Sampling - Disk vs Sphere
• Sampling of disk and projecting onto hemisphere = sampling on 1/2 of sphere
Importance Sampling ctd.
• As seen last time, use a probability density function f to pick samples– properties
Importance Sampling ctd.
• Then, our approximation becomes
(here g(x) is prob. Dens. Funciton, not f(x))
Importance Sampling ctd.
• How do we pick f?– want to minimize variance
– where G is integral of original function g(x)– … after much math we get
– which is great!! Except, G is what we are trying to find
f(x) = |g(x)| / G
G2
Importance Sampling ctd.• If we don’t know G, how can we pick f
– If we apply a filter to g, so integral is of form
Then if the filter is clamped [0,1] the filter itself becomes a reasonable estimate for f
Problems with this method?
Importance Sampling ctd.
• Remember f(x) = |g(x)| / G gives least variance
• motivation for adaptive sampling
• build f from first few samples
Conclusion
• Multiple ways to generate “random” numbers– have to pick best method for each application
• Many sampling techniques, with pros and cons– uniform– stratified– importance– adaptive
References
• http://www.math.iastate.edu/reu/2001/voronoi/halton_sequence.html
• http://www.cse.cuhk.edu.hk/~ttwong/papers/udpoint/udpoint.pdf
• http://www.fz-juelich.de/nic-series/volume10/janke1.pdf
• http://graphics.stanford.edu/courses/cs348b-00/lectures/lecture13/montecarlo.1.pdf
• Principles of Digital Image Synthesis, Glassner