Programming Languages and Systems

Volume 6602 of the series Lecture Notes in Computer Science pp 77-96

Measure Transformer Semantics for Bayesian Machine Learning

  • Johannes BorgströmAffiliated withMicrosoft Research
  • , Andrew D. GordonAffiliated withMicrosoft Research
  • , Michael GreenbergAffiliated withUniversity of Pennsylvania
  • , James MargetsonAffiliated withMicrosoft Research
  • , Jurgen Van GaelAffiliated withMicrosoft Research


The Bayesian approach to machine learning amounts to inferring posterior distributions of random variables from a probabilistic model of how the variables are related (that is, a prior distribution) and a set of observations of variables. There is a trend in machine learning towards expressing Bayesian models as probabilistic programs. As a foundation for this kind of programming, we propose a core functional calculus with primitives for sampling prior distributions and observing variables. We define combinators for measure transformers, based on theorems in measure theory, and use these to give a rigorous semantics to our core calculus. The original features of our semantics include its support for discrete, continuous, and hybrid measures, and, in particular, for observations of zero-probability events. We compile our core language to a small imperative language that has a straightforward semantics via factor graphs, data structures that enable many efficient inference algorithms. We use an existing inference engine for efficient approximate inference of posterior marginal distributions, treating thousands of observations per second for large instances of realistic models.