June 28th 2023
Automatic Probability with PyMC
How PyMC infers probabilities from random functionsOnline
Many people have heard of (or at least used) automatic differentiation, a set of routines that allow programs to compute partial derivatives from numerical functions. This innovation allowed a large class of users to benefit from gradient-based algorithms without having to understand or manually implement their own gradient functions.
PyMC grabbed this idea and applied it to a completely novel context: automatic probability. With it, we can automatically derive and evaluate probability expressions from user-specified random functions. Similar to automatic differentiation, this allows users to create rich generative models and exploit probability-based algorithms (e.g., NUTS) without having to manually implement their own probability functions.
In this talk, we present this new foundation of PyMC and how it can (and is already) used to construct specialized classes of models, from arbitrary variable transformations to mixture distributions, censoring processes, and highly structured timeseries.
The goal is to understand what makes PyMC a true probabilistic programming language and how you can exploit it!