Skip to content

Workshop on probabilistic programming for Tech Summit 2020 (Brno, December 12 2019)

License

Notifications You must be signed in to change notification settings

solarwinds/probprog-workshop

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

22 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Introduction to Probabilistic Programming

Author: Alex Chan | @aybchan

agenda

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.

Slides

presentation/slides.pdf

References

Textbooks

  • 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)

Papers

  • 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)

Videos

Agenda

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

Prerequisites

  • git
  • Docker

Instructions

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

Demo links

Gaussian process

Interactive demo: https://gaussianprocess.herokuapp.com/

Code: https://github.com/aybchan/gaussianprocess

Markov chain

Markov chain simulation

3-state Markov chain simulation

Markov chain Monte Carlo

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

nbviewer

If you can't/don't want to build the docker image, you can use nbviewer to follow the notebooks:

About

Workshop on probabilistic programming for Tech Summit 2020 (Brno, December 12 2019)

Topics

Resources

License

Stars

Watchers

Forks