
Metropolis Algorithm and Bayesian posterior sampling - efavdb
http://efavdb.com/metropolis/
======
panic
Metropolis Light Transport
([http://graphics.stanford.edu/papers/metro/](http://graphics.stanford.edu/papers/metro/))
is a clever rendering technique based on this sampling technique applied to
light paths.

~~~
boulos
One thing people (myself included!) often missed though is that Metropolis is
extremely prone to flicker. I think the best summary of why comes from Kalos
and Whitlock (2nd Edition):

> The M(RT)2 algorithm is very simple and powerful; it can be used to sample
> essentially any distribution function regardless of analytic complexity in
> any number of dimensions. Complementary disadvantages are that sampling is
> correct only asymptotically and that successive variables produced are
> correlated, often very strongly. This means that the evaluation of integrals
> normally produces positive correlations in the values of the integrand, with
> consequent increase in variance for a fixed number of steps as compared with
> independent samples. Also the method is not well suited to sampling
> distributions with parameters that change frequently.

~~~
erichocean
> _One thing people (myself included!) often missed though is that Metropolis
> is extremely prone to flicker._

Doing PCA across frames basically eliminates that. IIRC Pixar did a paper on
the technique.

~~~
jcl
Actually, the Renderman denoiser is based on work from Disney Research.

[https://renderman.pixar.com/view/denoiser](https://renderman.pixar.com/view/denoiser)

PCA would be one way to do that. This recent paper suggests that they may be
decomposing the samples mostly by path type, though:

[https://www.disneyresearch.com/publication/pathspace-
decompo...](https://www.disneyresearch.com/publication/pathspace-
decomposition/)

~~~
boulos
He's referring to the older 2008 paper that did PCA, _Statistical Acceleration
for Animated Global Illumination_ :
[http://graphics.pixar.com/library/ShotRendering/paper.pdf](http://graphics.pixar.com/library/ShotRendering/paper.pdf)

------
gaur
What's the rationale behind 100 as the thinning factor? Just a conservative
number based on the autocorrelation length?

~~~
imurray
The thinning here is based on a misconception. If the purpose is plotting a
histogram it doesn't matter if the samples are correlated. The bin heights are
consistently estimated if you keep everything. Throwing away intermediate
steps usually just introduces noise.

Thinning is a good idea if the samples are strongly correlated, and the
computation to process them all would be better spent on running the chain for
longer. Or if you don't know what computation you want in advance, and you
can't afford to store everything.

(Also, as someone points out in the comments, the implementation of the
Metropolis algorithm in this post is wrong.)

------
asifjamil
Can anyone here recommend a good reference (blog, e-book, etc.) for beginners
in Bayesian statistical analysis?

~~~
vitohuang
You can have look at this

[https://github.com/CamDavidsonPilon/Probabilistic-
Programmin...](https://github.com/CamDavidsonPilon/Probabilistic-Programming-
and-Bayesian-Methods-for-Hackers)

