Divide, Conquer, and Combine: a New Inference Strategy for Probabilistic Programs with Stochastic Support

Universal probabilistic programming systems (PPSs) provide a powerful framework for specifying rich probabilistic models. They further attempt to automate the process of drawing inferences from these models, but doing this successfully is severely hampered by the wide range of non--standard models they can express. As a result, although one can specify complex models in a universal PPS, the provided inference engines often fall far short of what is required. In particular, we show that they produce surprisingly unsatisfactory performance for models where the support varies between executions, often doing no better than importance sampling from the prior. To address this, we introduce a new inference framework: Divide, Conquer, and Combine, which remains efficient for such models, and show how it can be implemented as an automated and generic PPS inference engine. We empirically demonstrate substantial performance improvements over existing approaches on three examples.

[1]  Sean Gerrish,et al.  Black Box Variational Inference , 2013, AISTATS.

[2]  A. Doucet,et al.  Particle Markov chain Monte Carlo methods , 2010 .

[3]  Zoubin Ghahramani,et al.  Turing: A Language for Flexible Probabilistic Inference , 2018 .

[4]  Ohad Kammar,et al.  Functional programming for modular Bayesian inference , 2018, Proc. ACM Program. Lang..

[5]  Thomas B. Schön,et al.  Automated learning with a probabilistic programming language: Birch , 2018, Annu. Rev. Control..

[6]  Chung-Kil Hur,et al.  R2: An Efficient MCMC Sampler for Probabilistic Programs , 2014, AAAI.

[7]  Andrew Gelman,et al.  Handbook of Markov Chain Monte Carlo , 2011 .

[8]  Yee Whye Teh,et al.  The Mondrian Process , 2008, NIPS.

[9]  Thomas A. Henzinger,et al.  Probabilistic programming , 2014, FOSE.

[10]  P. Green,et al.  Trans-dimensional Markov chain Monte Carlo , 2000 .

[11]  Nando de Freitas,et al.  An Introduction to Sequential Monte Carlo Methods , 2001, Sequential Monte Carlo Methods in Practice.

[12]  Michael I. Jordan,et al.  An HDP-HMM for systems with state persistence , 2008, ICML '08.

[13]  Chong Wang,et al.  Stochastic variational inference , 2012, J. Mach. Learn. Res..

[14]  Sriram K. Rajamani,et al.  Efficiently Sampling Probabilistic Programs via Program Analysis , 2013, AISTATS.

[15]  David Tolpin,et al.  Design and Implementation of Probabilistic Programming Language Anglican , 2016, IFL 2016.

[16]  Fredrik Lindsten,et al.  Interacting Particle Markov Chain Monte Carlo , 2016, ICML.

[17]  John Salvatier,et al.  Probabilistic programming in Python using PyMC3 , 2016, PeerJ Comput. Sci..

[18]  Timothy Brooks Paige Automatic inference for higher-order probabilistic programs , 2016 .

[19]  Matt J. Kusner,et al.  Grammar Variational Autoencoder , 2017, ICML.

[20]  V. T. Rajan,et al.  Bayesian Inference in Monte-Carlo Tree Search , 2010, UAI.

[21]  Yura N. Perov,et al.  Venture: a higher-order probabilistic programming platform with programmable inference , 2014, ArXiv.

[22]  Timon Gehr,et al.  λPSI: exact inference for higher-order probabilistic programs , 2020, PLDI.

[23]  Alexey Radul,et al.  Time Series Structure Discovery via Probabilistic Program Synthesis , 2016 .

[24]  Joshua B. Tenenbaum,et al.  Church: a language for generative models , 2008, UAI.

[25]  Hinrich Schütze,et al.  Book Reviews: Foundations of Statistical Natural Language Processing , 1999, CL.

[26]  Frank D. Wood,et al.  Probabilistic structure discovery in time series data , 2016, ArXiv.

[27]  David Tolpin,et al.  Maximum a Posteriori Estimation by Search in Probabilistic Programs , 2015, SOCS.

[28]  Dustin Tran,et al.  Deep Probabilistic Programming , 2017, ICLR.

[29]  P. Green,et al.  On Bayesian Analysis of Mixtures with an Unknown Number of Components (with discussion) , 1997 .

[30]  Tom Rainforth,et al.  Automating inference, learning, and design using probabilistic programming , 2017 .

[31]  Pat Hanrahan,et al.  Generating Efficient MCMC Kernels from Probabilistic Programs , 2014, AISTATS.

[32]  Radford M. Neal MCMC Using Hamiltonian Dynamics , 2011, 1206.1901.

[33]  Noah D. Goodman,et al.  C3: Lightweight Incrementalized MCMC for Probabilistic Programs using Continuations and Callsite Caching , 2015, AISTATS.

[34]  Prabhat,et al.  Efficient Probabilistic Inference in the Quest for Physics Beyond the Standard Model , 2018, NeurIPS.

[35]  A. Rollett,et al.  The Monte Carlo Method , 2004 .

[36]  Noah D. Goodman,et al.  Deep Amortized Inference for Probabilistic Programs , 2016, ArXiv.

[37]  David Wingate,et al.  Automated Variational Inference in Probabilistic Programming , 2013, ArXiv.

[38]  Agostino Nobile,et al.  Bayesian finite mixtures with an unknown number of components: The allocation sampler , 2007, Stat. Comput..

[39]  Freda Kemp,et al.  An Introduction to Sequential Monte Carlo Methods , 2003 .

[40]  Jacques Carette,et al.  Probabilistic Inference by Program Transformation in Hakaru (System Description) , 2016, FLOPS.

[41]  David Tolpin,et al.  Output-Sensitive Adaptive Metropolis-Hastings for Probabilistic Programs , 2015, ECML/PKDD.

[42]  Yura N. Perov,et al.  Learning Probabilistic Programs , 2014, ArXiv.

[43]  Jukka Corander,et al.  Layered adaptive importance sampling , 2015, Statistics and Computing.

[44]  Yee Whye Teh,et al.  On Exploration, Exploitation and Learning in Adaptive Importance Sampling , 2018, ArXiv.

[45]  Marcus Gallagher,et al.  Reversible Jump Probabilistic Programming , 2019, AISTATS.

[46]  P. Green Reversible jump Markov chain Monte Carlo computation and Bayesian model determination , 1995 .

[47]  Frank D. Wood,et al.  LF-PPL: A Low-Level First Order Probabilistic Programming Language for Non-Differentiable Models , 2019, AISTATS.

[48]  Jiqiang Guo,et al.  Stan: A Probabilistic Programming Language. , 2017, Journal of statistical software.

[49]  Noah D. Goodman,et al.  Pyro: Deep Universal Probabilistic Programming , 2018, J. Mach. Learn. Res..

[50]  Dustin Tran,et al.  Automatic Differentiation Variational Inference , 2016, J. Mach. Learn. Res..

[51]  Yee Whye Teh,et al.  Inference Trees: Adaptive Inference with Exploration , 2018, 1806.09550.

[52]  Joshua B. Tenenbaum,et al.  Structure Discovery in Nonparametric Regression through Compositional Kernel Search , 2013, ICML.

[53]  Vikash K. Mansinghka,et al.  Gen: a general-purpose probabilistic programming system with programmable inference , 2019, PLDI.

[54]  Noah D. Goodman,et al.  Lightweight Implementations of Probabilistic Programming Languages Via Transformational Compilation , 2011, AISTATS.

[55]  Rémi Munos,et al.  Adaptive strategy for stratified Monte Carlo sampling , 2015, J. Mach. Learn. Res..

[56]  Frank D. Wood,et al.  A New Approach to Probabilistic Programming Inference , 2014, AISTATS.

[57]  Hongseok Yang,et al.  An Introduction to Probabilistic Programming , 2018, ArXiv.

[58]  Frank D. Wood,et al.  Inference Compilation and Universal Probabilistic Programming , 2016, AISTATS.