Course Description
In this course, participants will get an in-depth introduction into probabilistic programming beginning with the fundamentals of probabilistic programming, the structure of probabilistic programming languages and their inference libraries. As a part of this, we will look into the conversion of sampling- and optimization-based inference approaches into the framework of inference on the probabilistic graphical models we express our programs/models. Building on this foundation we will then focus on data-driven strategies, which combine probabilistic programming with either inference routines themselves to amortize inference costs or with neural networks to construct the foundations of Bayesian deep learning. In our final lecture, we will then discover how we can combine our learned techniques with simulators to unearth new insights into their structure and latent dynamics. The course is aimed at students who have a keen interest in Bayesian computing, its marriage with machine learning and the probing models for their latent dynamics, regardless of the models being GANs, deep generative flow models, reinforcement learning environments or scientific simulators.Course tools
- Julia
- Python
- Gen.jl
- JAX
Prerequisites
- Understanding of Bayesian Statistics
- Basic understanding of Monte-Carlo methods
- Basic Understanding of a Programming Language such as Julia, Python, C++ et al.