Skip to content
Last Dictionary

probabilistic programming

nounAlso: probabilistic programming language, PPL, Stan, Pyro, PyMC, BUGS

In plain wordsWriting a statistical model as an ordinary-looking program that includes random choices, and letting the system work out automatically which hidden values best explain the observed data.

  1. An approach to statistical modeling in which a model is written as a program that makes random choices (draws from distributions) and conditions on observed data, and a general-purpose inference engineinference engine, n.: The part of an AI system that does the working-out: in older AI, the program that applies rules to facts; in today's AI, the software that runs a trained model to produce answers. then computes the posterior distribution over the program's unobserved variables. Separating the model from the inference algorithm lets users express complex, hierarchical or even recursive models without deriving algorithms by hand. Back ends use Markov chain Monte CarloMarkov chain Monte Carlo, n.: A family of methods for drawing random examples from a complicated probability distribution by taking a long, carefully designed random walk that eventually visits each region in proportion to its probability. (notably Hamiltonian Monte Carlo, as in Stan), variational inferencevariational inference, n.: A way of approximating a hard-to-compute probability distribution by picking the closest match from a simpler family of distributions, turning a hard problem of adding up every possibility into an optimization problem. (as in Pyro), sequential Monte Carlo or exact enumeration, usually with automatic differentiation. Probabilistic programming generalizes graphical modelsprobabilistic graphical model, n.: A way of describing how many uncertain quantities depend on one another by drawing them as a network, which makes it practical for a computer to reason about all of them together. to models whose structure need not be fixed in advance, and it is widely used in scientific modeling, epidemiology, experiment analysis and Bayesian models of cognition.

    In the probabilistic program, each school's effect is drawn from a shared distribution, and Stan infers both levels at once.

Origin

BUGS (Bayesian inference Using Gibbs Sampling), begun around 1989 at the MRC Biostatistics Unit in Cambridge, was the first widely used system. Church (2008), from Noah Goodman, Joshua Tenenbaum and colleagues at MIT, made universal probabilistic programming in a Lisp dialect influential; Stan (2012), Pyro (2017) and PyMC brought the approach into mainstream statistics and machine learning.

Related

See also
  • probabilistic graphical modelprobabilistic graphical model, n.: A way of describing how many uncertain quantities depend on one another by drawing them as a network, which makes it practical for a computer to reason about all of them together.
  • Bayesian inferenceBayesian inference, n.: Reasoning that treats unknowns as uncertain beliefs and updates them with evidence using Bayes' theorem. The result is not one answer but a range of answers, each with a probability.
  • Markov chain Monte CarloMarkov chain Monte Carlo, n.: A family of methods for drawing random examples from a complicated probability distribution by taking a long, carefully designed random walk that eventually visits each region in proportion to its probability.
  • variational inferencevariational inference, n.: A way of approximating a hard-to-compute probability distribution by picking the closest match from a simpler family of distributions, turning a hard problem of adding up every possibility into an optimization problem.
  • Bayesian networkBayesian network, n.: A diagram of causes and effects with probabilities attached — say, how rain and a sprinkler can each make grass wet — that lets a computer update its beliefs about hidden causes when it sees evidence.

Sources

  1. Goodman, N. D., Mansinghka, V. K., Roy, D., Bonawitz, K. & Tenenbaum, J. B. (2008). Church: A Language for Generative Models. Proceedings of UAI 2008.
  2. Carpenter, B. et al. (2017). Stan: A Probabilistic Programming Language. Journal of Statistical Software 76(1).

Mentioned in

inference engineinference engine, n.: The part of an AI system that does the working-out: in older AI, the program that applies rules to facts; in today's AI, the software that runs a trained model to produce answers., probabilistic graphical modelprobabilistic graphical model, n.: A way of describing how many uncertain quantities depend on one another by drawing them as a network, which makes it practical for a computer to reason about all of them together., Markov logic networkMarkov logic network, n.: A way of combining logical rules with probabilities, so that a rule like 'friends usually like the same music' can sometimes be broken, with each rule given a weight saying how strongly it holds.