2020 UBC [CS532W] Topics in AI: Probabilistic Programming (cross-listed with [CPSC 539W], Topics in Programming Languages: Probabilistic Programming)
Probabilistic programming lies at the intersection of machine learning, statistics, programming languages, and deep learning. Historically probabilistic programming has been about automating Bayesian statistical inference; more recently it has emerged as a candidate for the next toolchain for AI, particularly for unsupervised, semi-supervised, and reinforcement learning.
By the end of this course you will know how to (if you don’t already):
Skills and knowledge that you will reinforce or acquire:
You will also be exposed to a variety of “advanced” models and methods including program synthesis via inference, deep structured variational autoencoders for semi- and un-supervised learning as well as a raft of advanced inference methods including Hamiltonian Monte Carlo, sequential Monte Carlo and stochastic variational inference.
This course is one a very small handful in the world on probabilistic programming. Such courses include
There have been courses run at MIT and Stanford in the past built around the truly excellent material in DIPPL – The Design and Implementation of Probabilistic Programming Languages . Also ProbMods – .
This the second offering of a course built around the still forthcoming Foundations and Trends in Machine Learning book entitled “Introduction to Probabilistic Programming” . In spirit this book is most similar to DIPPL however it, and this course, are more technical, broader, and push slightly further towards state of the art.