04802060: Introduction to Probabilistic Programming

When: Thursday 9am - 12am
Where: 211, Changping Campus & 311 Teaching Building 2, Main Campus
Instructor: Xin Zhang
TA: Ruyi Ji

Machine learning and artificial intelligence are taking increasingly important roles in our society. How to write high-quality ML and AI programs has become a key problem. However, writing these programs in conventional programming languages is nontrivial, as they lack built-in support for machine learning and probabilistic models.

Probabilistic programming is an area which rose recently to address this challenge. From the perspective of programming languages, probabilistic programming languages add built-in support for random variables in a general language. From the perspective of ML, probabilistic programming uses expressive language constructs to express probabilistic models, which allows constructing arbitrarily complex models. Thus, probabilistic programming languages are both new programming languages and new machine learning models. They are seen as promising ways to build future ML and AI systems. Top research institutes and companies like MIT, Columbia, Oxford, Google, Facebook and Uber are racing to develop their own probabilistic languages.

In this course, we will study representative probabilistic programming languages and their applications, theories and implementations of probabilistic programming, classical graphical models and inference algorithms, and new frontiers in the area. Having basic knowledge of probabilities and programming is recommended to take the course.