Sound Abstraction and Decomposition of Probabilistic Programs

Probabilistic programming languages are a flexible tool for specifying statistical models, but this flexibility comes at the expense of efficient analysis. It is currently difficult to compactly represent the subtle independence properties of a probabilistic program and to exploit independence properties to decompose inference. Classical graphical model abstractions do capture some properties of the underlying distribution, enabling inference algorithms to operate at the level of the graph topology. However, we observe that graph-based abstractions are often too coarse to capture interesting properties of programs. We propose a form of sound abstraction for probabilistic programs wherein the abstractions are themselves simplified programs. We provide a theoretical foundation for these abstractions, as well as an algorithm to generate them. Experimentally, we also illustrate the practical benefits of our framework as a tool to decompose probabilistic program inference.

[1]  Judea Pearl,et al.  Probabilistic reasoning in intelligent systems - networks of plausible inference , 1991, Morgan Kaufmann series in representation and reasoning.

[2]  Guy Van den Broeck,et al.  Probabilistic Program Abstractions , 2017, UAI.

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

[4]  Rupak Majumdar,et al.  Approximate counting in SMT and value estimation for probabilistic programs , 2014, Acta Informatica.

[5]  Timon Gehr,et al.  PSI: Exact Symbolic Inference for Probabilistic Programs , 2016, CAV.

[6]  Patrick Cousot,et al.  Probabilistic Abstract Interpretation , 2012, ESOP.

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

[8]  Aws Albarghouthi,et al.  FairSquare: probabilistic verification of program fairness , 2017, Proc. ACM Program. Lang..

[9]  Kristian Kersting,et al.  Lifted Probabilistic Inference , 2012, ECAI.

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

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

[12]  X. Jin Factor graphs and the Sum-Product Algorithm , 2002 .

[13]  Helmut Veith,et al.  Counterexample-guided abstraction refinement for symbolic model checking , 2003, JACM.

[14]  Craig Boutilier,et al.  Context-Specific Independence in Bayesian Networks , 1996, UAI.

[15]  Dexter Kozen,et al.  Semantics of probabilistic programs , 1979, 20th Annual Symposium on Foundations of Computer Science (sfcs 1979).

[16]  R. Aumann Borel structures for function spaces , 1961 .

[17]  Edsger W. Dijkstra,et al.  A Discipline of Programming , 1976 .

[18]  Andrew McCallum,et al.  FACTORIE: Probabilistic Programming via Imperatively Defined Factor Graphs , 2009, NIPS.

[19]  Thomas P. Minka,et al.  Probabilistic Programming with Infer.NET , 2017 .

[20]  Todd Millstein,et al.  Automatic predicate abstraction of C programs , 2001, PLDI '01.

[21]  Guy Van den Broeck,et al.  Tractability through Exchangeability: A New Perspective on Efficient Probabilistic Inference , 2014, AAAI.

[22]  Nir Friedman,et al.  Probabilistic Graphical Models: Principles and Techniques - Adaptive Computation and Machine Learning , 2009 .

[23]  A. Pfeffer,et al.  Figaro : An Object-Oriented Probabilistic Programming Language , 2009 .

[24]  Chung-Kil Hur,et al.  Slicing probabilistic programs , 2014, PLDI.

[25]  Sumit Gulwani,et al.  Static analysis for probabilistic programs: inferring whole program properties from finitely many paths , 2013, PLDI.

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

[27]  David Monniaux,et al.  Abstract Interpretation of Probabilistic Semantics , 2000, SAS.

[28]  Hassen Saïdi,et al.  Construction of Abstract State Graphs with PVS , 1997, CAV.

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