Practical probabilistic programming with monads


Type
Conference Object
Change log
Authors
Åšcibior, A 
Gordon, AD 
Abstract

jats:pThe machine learning community has recently shown a lot of interest in practical probabilistic programming systems that target the problem of Bayesian inference. Such systems come in different forms, but they all express probabilistic models as computational processes using syntax resembling programming languages. In the functional programming community monads are known to offer a convenient and elegant abstraction for programming with probability distributions, but their use is often limited to very simple inference problems. We show that it is possible to use the monad abstraction to construct probabilistic models for machine learning, while still offering good performance of inference in challenging models. We use a GADT as an underlying representation of a probability distribution and apply Sequential Monte Carlo-based methods to achieve efficient inference. We define a formal semantics via measure theory. We demonstrate a clean and elegant implementation that achieves performance comparable with Anglican, a state-of-the-art probabilistic programming system.</jats:p>

Description
Keywords
Haskell, probabilistic programming, Bayesian statistics, monads, Monte Carlo
Journal Title
ACM SIGPLAN Notices
Conference Name
Proceedings of the 2015 ACM SIGPLAN Symposium on Haskell
Journal ISSN
1523-2867
1558-1160
Volume Title
Publisher
Association for Computing Machinery (ACM)
Sponsorship
EPSRC (1471629)
The first author is supported by EPSRC and the Cambridge Trust.