DynamicPPL: Stan-like Speed for Dynamic Probabilistic Models

02/07/2020
by   Mohamed Tarek, et al.
9

We present the preliminary high-level design and features of DynamicPPL.jl, a modular library providing a lightning-fast infrastructure for probabilistic programming. Besides a computational performance that is often close to or better than Stan, DynamicPPL provides an intuitive DSL that allows the rapid development of complex dynamic probabilistic programs. Being entirely written in Julia, a high-level dynamic programming language for numerical computing, DynamicPPL inherits a rich set of features available through the Julia ecosystem. Since DynamicPPL is a modular, stand-alone library, any probabilistic programming system written in Julia, such as Turing.jl, can use DynamicPPL to specify models and trace their model parameters. The main features of DynamicPPL are: 1) a meta-programming based DSL for specifying dynamic models using an intuitive tilde-based notation; 2) a tracing data-structure for tracking RVs in dynamic probabilistic models; 3) a rich contextual dispatch system allowing tailored behaviour during model execution; and 4) a user-friendly syntax for probabilistic queries. Finally, we show in a variety of experiments that DynamicPPL, in combination with Turing.jl, achieves computational performance that is often close to or better than Stan.

READ FULL TEXT

page 1

page 2

page 3

page 4

research
09/30/2018

Extending Stan for Deep Probabilistic Programming

Deep probabilistic programming combines deep neural networks (for automa...
research
05/02/2018

A Probabilistic Extension of Action Language BC+

We present a probabilistic extension of action language BC+. Just like B...
research
12/22/2020

NetworkDynamics.jl – Composing and simulating complex networks in Julia

NetworkDynamics.jl is an easy-to-use and computationally efficient packa...
research
08/21/2020

Transforming Probabilistic Programs for Model Checking

Probabilistic programming is perfectly suited to reliable and transparen...
research
06/15/2012

A Dynamic Programming Algorithm for Inference in Recursive Probabilistic Programs

We describe a dynamic programming algorithm for computing the marginal d...
research
04/22/2020

A scriptable, generative modelling system for dynamic 3D meshes

We describe a flexible, script-based system for the procedural generatio...
research
10/17/2017

Cinnamons: A Computation Model Underlying Control Network Programming

We give the easily recognizable name "cinnamon" and "cinnamon programmin...

Please sign up or login with your details

Forgot password? Click here to reset