Skip to main content
School of Electronic Engineering and Computer Science

Probabilistic Programming, without Sampling

Application deadline: 1st June 2024

Probabilistic programming is a recent and extremely dynamic field of research which lies at the intersection of statistical machine learning and programming language theory. Probabilistic programming languages (e.g. Pyro, PyMC3, Anglican, …) are designed to make both the development of statistical models and the learning of their parameters as easy as possible. These languages have led to many new and interesting problems. How can we interpret probabilistic programs? How can we verify their correctness? How can they be evaluated efficiently?

A standard way of performing computations in a probabilistic program is to generate lots of samples, apply operations to these samples, and then plot a histogram which approximates the output distribution we are interested in. This approach is fast and intuitive but converges very slowly to the target distribution and, being only approximate, is unsuited to formal verification tasks. This project aims to develop another approach where probabilistic programs operate directly on distributions, rather than on samples. Concretely, this means developing (i) a probabilistic programming language which manipulates probability distributions, (ii) new algorithms to concretely evaluate programs written in this language, and (iii) the mathematical toolbox to interpret and verify them.

Supervisor: Fredrik Dahlqvist - f.dahlqvist@qmul.ac.uk

Back to top