Research group

Programming Languages and Tools Lab

Summer School on Probabilistic Programming

August 12 — August 16, 2019

School participants

Instructor: Prof. Hongseok Yang, KAIST, Republic of Korea.

General Information

The school will be carried out in English, the attendance is free of charge, but the number of participants is potentially limited. The exact time and venue will be announced later.

To register for the school and receive future announces please join the following group:!forum/jbr_summer_school_on_probabilistic_programming


Probabilistic programming refers to the idea of developing a programming language for writing and reasoning about probabilistic models from machine learning and statistics. Such a language comes with the implementation of several generic inference algorithms that answer various queries about the models written in the language, such as posterior inference and marginalisation. By providing these algorithms, a probabilistic programming language enables data scientists to focus on designing good models based on their domain knowledge, instead of building effective inference engines for their models, a task that typically requires expertise in machine learning, statistics and systems. Even experts in machine learning and statistics may get benefited from such a probabilistic programming system because using the system they can easily explore highly advanced models.

This course has two goals. The first is to help students to be a good user of an expressive probabilistic programming language. Throughout the course, we will use a particular language, called Anglican, but we will emphasise general principles that apply to a wide range of existing probabilistic programming systems. The second goal is to expose the students to the recent results behind the design and implementation of probabilistic programming languages, which come from machine learning, statistics, programming languages, and probability theory.

In the course, we plan to cover a subset of the following topics.

1. Basics of Clojure and Anglican.

2. Posterior inference and importance sampling.

3. Generative modelling with Anglican.

4. Markov Chain Monte Carlo.

5. Implementing inference algorithms for probabilistic programs.

6. Stochastic variational inference.

7. Amortised inference.

8. Denotational semantics of probabilistic programs.

The course will be based on the probabilistic programming course offered at KAIST, whose materials are available at: