Introduction to Probabilistic Programming and Bayesian methods using PyMC3
Bayesian inference has been popular in scientific research for a long time. Using this statistical technique, we state prior beliefs about what we think our data looks like to encode expert knowledge into a model. These prior beliefs are then updated in light of new data, providing not one prediction, but a full distribution of likely answers.
Bayesian methods lack widespread commercial use because they are tough to implement. But probabilistic programming reduces what significantly.
While normal programming languages denote procedures, probabilistic programming languages denote models and perform inference on these models. Users write code to specify a model for their data, and the languages run sampling algorithms across probability distributions to output answers with confidence rates and levels of uncertainty across a full distribution.
Probabilistic programs are usual functional or imperative programs with two added constructs: (1) the ability to draw values at random from distributions, and (2) the ability to condition values of variables in a program via observations. (Ref: Gordon et. al. 2014) PyMC3 is a probabilistic programming package for Python that allows users to fit Bayesian models using a variety of numerical methods.
In this talk we will get introduced to PyMC3 & Probabilistic Programming.
Outline of the talk:
- What are Bayesian models and Bayesian inference (5 mins)
- A quick recap on probability distributions (5 mins)
- Examples of Simple and Loopy probabilistic programs (5 mins)
- Inference for probabilistic programs (5 mins)
- End to end application example in PyMC3 (5 mins)
- Q&A (5 mins)
Basic knowledge of probability theory
Mukul Joshi is VP of Technology and Engineering at Nitor Infotech Pune. Mukul’s association with Nitor began with the acquisition of his company SpotOn by Nitor. Mukul has a total experience of 17 years in Research, Technology, and Software Product engineering. His career so far has been as colorful as the rainbow with a wonderful blend of Technology, Startup and Business experience. Prior to SpotOn, he worked with GS Lab, IBM Research Lab, and Persistent Systems. He played a key role there as a technology architect & computer science researcher. He holds two patents to his name. He has published extensively in the areas of text mining, machine learning, search and data science. An alumnus of Computer Science & Engineering at IIT Bombay, he is a voracious reader with a great passion for music, maths and Marathi literature & arts.