What is Probabilistic Programming?
Probabilistic Programming(PP) is also a relatively unknown topic for many data scientists. However, this is an area that quickly becomes more important.
PP is a paradigm of programming that specifies probabilistic patterns and automatically deducts these patterns. It aims to bring together probabilistic modelling and traditional programming of the general-purpose to enhance and facilitate the latter. It can be used to build systems that assist decision-making in the presence of difficulty.
In this blog, I briefly discuss the specific situation of the PP. PP can be considered a tool for statistical modelling.
Randomization is the essential element of the PP and the objective of the PP is to give a statistical analysis that explains a phenomenon.
Probabilistic programming language (PPL) is built on some elements, that; we have a number of fundamental elements to generate random numbers, primitive ones to estimate probabilities & expectations and ultimately primitive ones to deduct the probabilistic inference
A PPL works a little differently than regular languages. The prior distributions are considered in the model as assumptions. The subsequent distribution of the model parameters is calculated on the basis of observed data, i.e. Inference is used to alter previous probabilities on the basis of observed data.
In PP, latent random variables enable us to model uncertainty. In this example, however, the statistical inference consists of determining the values of the latent variables.
But now the question is this, how do you use it?
The packages like pymc3 could be the one solution by implementing the Bayesian Probabilistic Graphical models.
One way of combining deep learning with PPLs is through Deep PPLs implemented the packages of the like Tensorflow Probability (TFP). Note that, TFP is a library for probabilistic reasoning and statistical analysis. TFP is a TensorFlow-based Python package that keeps things simple to integrate probabilistic models and deep learning on modern hardware (TPU, GPU).
Note: Probabilistic programming does not involve writing software that behaves randomly.
References:
- https://medium.com/swlh/a-gentle-introduction-to-probabilistic-programming-languages-bf1e19042ab6
- https://www.math.ucdavis.edu/~gravner/MAT135B/materials/ch11.pdf
- https://www.cs.cornell.edu/courses/cs4110/2016fa/lectures/lecture33.html
- https://www.tensorflow.org/probability
Thanks for reading this blog.
Comments
Post a Comment