Monolingual Probabilistic Programming Using Generalized Coroutines
Source: Rutgers University
Probabilistic programming languages and modeling toolkits are two modular ways to build and reuse stochastic models and inference procedures. Combining strengths of both, the authors express models and inference as generalized co-routines in the same general-purpose language. They 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, they introduce a new, general algorithm for importance sampling with look-ahead.