Author: Alex Chan | @aybchan
Docker container environment with materials for probabilistic programming workshop
Probabilistic programming is a cutting-edge tool at the heart of the Bayesian revolution in the sciences.
In this workshop, we give an introduction to Bayesian statistics, the probabilistic perspective on machine learning and the probabilistic programming paradigm. This is intended as a technical session for those with an interest in statistics and data science.
A probabilistic perspective towards machine learning allows for the principled representation and manipulation of uncertainty in models and predictions, and for probabilistic inference. The explicit quantification of uncertainty is properly understood as the logic of science; learning from data in a stochastic world can be done on such terms.
presentation/slides.pdf
- Machine Learning: A Probabilistic Perspective—Kevin P. Murphy. MIT Press (2012)
- Pattern Recognition and Machine Learning—Christopher Bishop. Springer (2006)
- Information Theory, Inference and Learning Algorithms—David J.C. Mackay. Cambridge University Press (2012)
- Probabilistic Graphical Models—Daphne Koller. MIT Press (2009)
- Probability Theory: The Logic of Science—E.T. Jaynes. Cambridge University Press (2003)
- MCMC using Hamiltonian dynamics—R. M. Neal (2010)
- A Conceptual Introduction to Hamiltonian Monte Carlo—M. Betancourt (2017)
- Probabilistic programming in Python using PyMC3—Salvatier, J., Wiecki T.V., Fonnesbeck C. (2016)
- Forecasting at Scale—Taylor, S.J., Letham, B. (2017)
- Are our brains Bayesian?—Robert Bain (2016)
- Probabilistic Machine Learning - Prof. Zoubin Ghahramani
- Iain Murray: "Introduction to MCMC for Deep Learning"
- Machine learning - Importance sampling and MCMC I
- Deep Probabilistic Modelling with Gaussian Processes - Neil D. Lawrence - NIPS Tutorial 2017
- Austin Rochford | Variational Inference in Python
- Deep Probabilistic Methods with PyTorch - Chris Ormandy
- PROBPROG Conference
Time: 2h 30m
- The probabilistic perspective
- Challenges in Bayesian inference
- Markov chain Monte Carlo
- Probabilistic programming in PyMC3
- Time series modelling with PyMC3
- Probabilistic deep learning
git
Docker
Works on Mac and Linux machines, untested on Windows.
git clone https://github.com/solarwinds/probprog-workshop.git
cd probprog-workshop
docker build -t probabilistic_programming docker
docker run --mount src=`pwd`/notebooks,target=/workspace/notebooks,type=bind -p 8888:8888 -it probabilistic_programming
Open localhost:8888
in your browser
Once you have finished, you may want to delete the Docker image:
docker rmi probabilistic_programming
Interactive demo: https://gaussianprocess.herokuapp.com/
Code: https://github.com/aybchan/gaussianprocess
3-state Markov chain simulation
Metropolis-Hastings on a banana: Vanilla MCMC demo
Metropolis-Hastings on a multimodal distribution: Lower proposal σ to demonstrate convergence problem
Hamiltonian Monte Carlo on a multimodal distribution: Using gradient information for proposing next samples instead of a Gaussian centred at the current sample leads to faster convergence
If you can't/don't want to build the docker
image, you can use nbviewer
to follow the notebooks: