4 ms·
It is a different paradigm in the same sense that Logic programming is a different paradigm. It's not just some API or library you can start calling into, it's
by Cybiote 10y ago
It is a different paradigm in the same sense that Logic programming is a different paradigm. It's not just some API or library you can start calling into, it's a tool which deeply changes how you approach your problem. You need to be comfortable and able to reason with probabilistic concepts^.
Another way to look at it is, similar to how you can have the concept of a program as a differentiable function, you can have probabilistic programs as defining a distribution. Their utility is the ease with which they allow you to model complex probability distributions and then condition on observations. With that, you can do inference.
If you've heard of bayesian networks or graphical models, PPs can generalize these. It's just a few lines to do hidden markov models, bayesian regression, gaussian processes, gaussian mixture models and LDA topic models. Their downside is that performing inference has been less efficient than writing these models out by hand. We know that the ideas are powerful as they produce generative models which work off less data and naturally incorporate uncertainty.
The dream is, just as a more expressive language should have less patterns, probabilistic programming will one day make writing complex generative models so routine people won't bother specially naming them as this or that machine learning algorithm.
^ The kind you find in a book like this: http://www.mbmlbook.com/toc.html http://www.mbmlbook.com/toc.html