Monolingual Probabilistic Programming Using Generalized Coroutines

Probabilistic programming languages and modeling toolkits are two modular ways to build and reuse stochastic models and inference procedures. Combining strengths of both, we express models and inference as generalized coroutines in the same general-purpose language. We use existing facilities of the language, such as rich libraries, optimizing compilers, and types, to develop concise, declarative, and realistic models with competitive performance on exact and approximate inference. In particular, a wide range of models can be expressed using memoization. Because deterministic parts of models run at full speed, custom inference procedures are trivial to incorporate, and inference procedures can reason about themselves without interpretive overhead. Within this framework, we introduce a new, general algorithm for importance sampling with look-ahead.

[1]  Christopher T. Haynes,et al.  Logic Continuations , 1986, J. Log. Program..

[2]  Fernando Pereira,et al.  Case-factor diagrams for structured probabilistic modeling , 2004, J. Comput. Syst. Sci..

[3]  Olivier Danvy,et al.  Abstracting control , 1990, LISP and Functional Programming.

[4]  David A. McAllester,et al.  Effective Bayesian Inference for Stochastic Programs , 1997, AAAI/IAAI.

[5]  Andrzej Filinski,et al.  Representing monads , 1994, POPL '94.

[6]  Ben Taskar,et al.  Markov Logic: A Unifying Framework for Statistical Relational Learning , 2007 .

[7]  Alan K. Mackworth,et al.  Artificial Intelligence - Foundations of Computational Agents , 2010 .

[8]  Peter Norvig,et al.  Artificial Intelligence: A Modern Approach , 1995 .

[9]  Taisuke Sato,et al.  A glimpse of symbolic-statistical modeling by PRISM , 2008, Journal of Intelligent Information Systems.

[10]  Andrew McCallum,et al.  Introduction to Statistical Relational Learning , 2007 .

[11]  Kevin Murphy,et al.  Bayes net toolbox for Matlab , 1999 .

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

[13]  Avi Pfeffer,et al.  A General Importance Sampling Algorithm for Probabilistic Programs , 2007 .

[14]  Pedro M. Domingos 1 Markov Logic: A Unifying Framework for Statistical Relational Learning , 2010 .

[15]  Juan L. Mateo,et al.  Comparative Evaluation of PL languages , 2007, MLG.

[16]  Xavier Leroy The objective caml system release 3 , 2001 .

[17]  Alexey Radul,et al.  Report on the probabilistic language scheme , 2007, DLS '07.

[18]  Avi Pfeffer,et al.  The Design and Implementation of IBAL: A General-Purpose Probabilistic Language , 2005 .

[19]  L Poole David,et al.  Artificial Intelligence: Foundations of Computational Agents , 2010 .

[20]  Kuo-Chu Chang,et al.  Weighing and Integrating Evidence for Stochastic Simulation in Bayesian Networks , 2013, UAI.

[21]  Ben Taskar,et al.  Introduction to Statistical Relational Learning (Adaptive Computation and Machine Learning) , 2007 .

[22]  Kevin Murphy Software for Graphical models : a review by , 2007 .

[23]  Stuart J. Russell,et al.  BLOG: Probabilistic Models with Unknown Objects , 2005, IJCAI.

[24]  Johann Schumann,et al.  Under Consideration for Publication in J. Functional Programming Autobayes: a System for Generating Data Analysis Programs from Statistical Models , 2022 .

[25]  Ross D. Shachter,et al.  Simulation Approaches to General Probabilistic Inference on Belief Networks , 2013, UAI.

[26]  Rina Dechter,et al.  Bucket elimination: A unifying framework for probabilistic inference , 1996, UAI.