Closed ksachdeva closed 4 years ago
@ksachdeva Good question! Currently, NumPyro does not have TraceGraphELBO implemented (we mostly focus on reparameterizable samplers). You can find those variance reduction techniques in Pyro, which is well-explained in this tutorial.
Thanks @fehiepsi
Hi,
I am relatively new to variational inference and so far my understanding has been that the trend/research in this space is to invent inference algorithms/mechanics such that one does not have to go through the rigor of crafting the analytical ELBO for every model. One general approach is to use Monte Carlo estimates of gradients of the expectation that appears in the loss function.
The paper BBVI (https://arxiv.org/abs/1401.0118) talks about these Monte Carlo estimates and then warns against the variance in the estimator. In my understanding so far, the paper's main contribution is to suggest various variance reduce techniques - two of them are Rao-Blackwellization & control variates (I do not know/understand these techniques properly yet).
I then started to look in Numpyro so see if there is an implementation of these variance reduction techniques as reading the code helps me along with the paper. I saw that the paper is mentioned here https://github.com/pyro-ppl/numpyro/blob/3913f934371331da717df1cca0d67852613e2d23/numpyro/infer/elbo.py#L31 but I am not able to figure out where in the code some of these techniques are implemented.
Would appreciate it if you could guide.
Regards & thanks Kapil