Reparameterization Gradients through Acceptance-Rejection Sampling Algorithms

Christian A. Naesseth, Francisco J. R. Ruiz, Scott W. Linderman, David M. Blei
10/18/2016
stat.MLstat.ME

Official code: blei-lab/ars-reparameterization (38 stars, MIT, last commit 2017-04-25).

Abstract

Variational inference using the reparameterization trick has enabled large-scale approximate Bayesian inference in complex probabilistic models, leveraging stochastic optimization to sidestep intractable expectations. The reparameterization trick is applicable when we can simulate a random variable by applying a differentiable deterministic function on an auxiliary random variable whose distribution is fixed. For many distributions of interest (such as the gamma or Dirichlet), simulation of random variables relies on acceptance-rejection sampling. The discontinuity introduced by the accept-reject step means that standard reparameterization tricks are not applicable. We propose a new method that lets us leverage reparameterization gradients even when variables are outputs of a acceptance-rejection sampling algorithm. Our approach enables reparameterization on a larger class of variational distributions. In several studies of real and synthetic data, we show that the variance of the estimator of the gradient is significantly lower than other state-of-the-art methods. This leads to faster convergence of stochastic gradient variational inference.

View on arXivView PDF

Code Implementations(1)

MIT

Source code for Naesseth et. al. "Reparameterization Gradients through Acceptance-Rejection Sampling Algorithms" (2017)

388Python, Jupyter NotebookFeb 27, 20179 years agoMIT

Similar Papers

Cite this paper

@article{naesseth2016reparameterization,
  title  = {Reparameterization Gradients through Acceptance-Rejection Sampling Algorithms},
  author = {Christian A. Naesseth and Francisco J. R. Ruiz and Scott W. Linderman and David M. Blei},
  year   = {2016},
  eprint = {1610.05683},
  archivePrefix = {arXiv},
  url    = {https://arxiv.org/abs/1610.05683}
}

Add a badge to your README

Shows whether official code is linked for this paper.

Code of Paper badge
[![Code of Paper](https://codeofpaper.com/badge/1610.05683.svg)](https://codeofpaper.com/paper/1610.05683)

Discussion