An Overview of Edward: A Probabilistic Programming System: Dustin Tran Columbia University
An Overview of Edward: A Probabilistic Programming System: Dustin Tran Columbia University
An Overview of Edward: A Probabilistic Programming System: Dustin Tran Columbia University
Dustin Tran
Columbia University
Alp Kucukelbir Adji Dieng Dawen Liang
[Dieng+ 2017]
Probabilistic machine learning
p(z, x).
p(z, x)
p(z | x) = .
p(x)
⌫ init
q(z; ν)
• Fit the variational parameters ν to be close (in KL) to the exact posterior.
What is probabilistic programming?
• Each model is equipped with memory (“bits”, floating point, storage) and
computation (“flops”, scalability, communication).
Anything you do lives in the world of probabilistic programming.
• Any computable model.
[Box & Hunter 1962, 1965; Box & Hill 1967; Box 1976, 1980]
Box’s Loop
[Tran+ 2017]
Example: Beta-Bernoulli
[Demo]
Example: Bayesian neural network for classification
[Denker+ 1987; MacKay 1992; Hinton & Van Camp, 1993; Neal 1995]
Example: Gaussian process classification
Given
• Data xtrain .
• Model p(x, z, β) of observed variables x and latent variables z, β .
Goal
• Calculate posterior distribution
p(xtrain , z, β)
p(z, β | xtrain ) = R .
p(xtrain , z, β) dz dβ
edwardlib.org/tutorials
Inference
Inference has class methods to finely control the algorithm. Edward is fast
as handwritten TensorFlow at runtime.
edwardlib.org/api
Inference
We can also write message passing algorithms, which work over a collection
of local inference problems. This includes expectation propagation.
∼ Normal(0, 1)
x = G(; θ)
min max Ep∗ (x) [log D(x; φ)] + Ep(x;θ) [log(1 − D(x; φ))]
θ φ
[Goodfellow+ 2014]
Example: Generative Adversarial Network for MNIST
[Demo]
http://edwardlib.org/tutorials/gan
Non-Bayesian Methods: GANs
[Goodfellow+ 2014]
Non-Bayesian Methods: GANs
x = pixelcnn_dist()
loss = -tf.reduce_sum(x.log_prob(images))
train = tf.train.AdamOptimizer().minimize(loss) # run for training
generate = x.sample() # run for generation
[Dillon+ 2017]
Distributed, Compiled, Accelerated Systems
edwardlib.org
• Edward: A library for probabilistic modeling, inference, and criticism.
arXiv preprint arXiv:1610.09787, 2016.
• Deep probabilistic programming.
International Conference on Learning Representations, 2017.
• TensorFlow Distributions.
arXiv preprint arXiv:1711.10604, 2017.