Birch
The Birch probabilistic programming language.
view repo
We introduce a dynamic mechanism for the solution of analytically-tractable substructure in probabilistic programs, to reduce variance in Monte Carlo estimators. For inference with Sequential Monte Carlo, it yields improvements such as locally-optimal proposals and Rao-Blackwellization, with little modification to model code necessary. A directed graph is maintained alongside the running program, evolving dynamically as the program triggers operations upon it. Nodes of the graph represent random variables, and edges the analytically-tractable relationships between them (e.g. conjugate priors and affine transformations). Each random variable is held in the graph for as long as possible, sampled only when used by the program in a context that cannot be resolved analytically. This allows it to be analytically conditioned on as many observations as possible before sampling. We have implemented the approach in both Anglican and a new probabilistic programming language named Birch. We demonstrate it on a number of small examples, and a larger mixed linear-nonlinear state-space model.
READ FULL TEXT
Probabilistic programming is a programming paradigm for expressing flexi...
read it
We present a new algorithm for approximate inference in probabilistic
pr...
read it
This paper proposes Monte Carlo Action Programming, a programming langua...
read it
Particle Markov chain Monte Carlo techniques rank among current
state-of...
read it
Probabilistic programs with mixed support (both continuous and discrete
...
read it
We introduce a class of network models that insert edges by connecting t...
read it
Models of complex systems are often formalized as sequential software
si...
read it
The Birch probabilistic programming language.
Comments
There are no comments yet.