# Introduction to Probabilistic Programming

Hariharan C (~hariharan)

#### Description:

Probabilistic programming differ from deterministic ones by allowing language primitives to be stochastic. In other words, instead of being restricted to deterministic assignments such as:

rent = 25000

one can specify a probability distribution from which this house with such a rent was drawn

rent ~ Normal(mu=25000, sigma=1000)

The expressiveness of the probabilistic programming framework, both theoretical and practical, allows us to go further into replacing parameters of Machine Learning algorithms with distributions. How do we do that?

With enhancing concerns about trust in black box AI, cases of small data, why will probabilistic programming help?

How do I start coding in PyMC3 and Edward/TensorFlow Probability?

I’m so used to black box ML, How do I wear a Bayesian hat?

This talk tries to answer these questions. Further, this talk will help get started with coding in PyMC3 and Edward, understand their strengths and weakness. Starting from Bayesian Inference to applying the same concepts on ML. In that sense, get an overall idea of how and where probabilistic programming helps. Code and graphs can be shown via Jupyter Notebook.

The section we would definitely want to cover would be the following

1. What is probabilistic programming and how is it different?
2. Why are approximation algorithms (MCMC/Variational Inference) fundamental to probabilistic programming?
3. Perform Statistical Analysis using a real world dataset using PyMC3 and Edward
4. Explain how to build the model, Infer parameters and test the model using code
5. TIme permitting, expand the basics to Machine Learning / Deep Learning
6. As a programmer who has never done probabilistic programming, how to get started?

#### Prerequisites:

Basic understanding of widely used Probability Distributions like Normal, Poisson, Binomial. Basic understanding of Machine Learning, Neural Networks.

It would be easier if one has understanding of fundamental data science packages like numpy/pandas/seaborn etc.

#### Content URLs:

https://github.com/harc007/