principled approximations in probabilistic programming

12
Swarat Chaudhuri Rice University Biplab Deka Rakesh Kumar UIUC Principled Approximations in Probabilistic Programming

Upload: dahlia

Post on 04-Jan-2016

28 views

Category:

Documents


3 download

DESCRIPTION

Principled Approximations in Probabilistic Programming. The computing stack (approximation). Algorithms Compiler and runtime Architecture. The APPROX view: with probabilities and approximations!. The computing stack. Algorithms Compiler and runtime Architecture. Probabilistic program. - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Principled  Approximations in Probabilistic Programming

Swarat ChaudhuriRice University

Biplab DekaRakesh Kumar

UIUC

Principled Approximations in Probabilistic Programming

Page 2: Principled  Approximations in Probabilistic Programming

The computing stack (approximation)

AlgorithmsCompiler and runtime

Architecture

The APPROX view: with probabilitiesand approximations!

Page 3: Principled  Approximations in Probabilistic Programming

The computing stack

AlgorithmsCompiler and runtimeArchitecture

The APPROX view: with probabilitiesand approximations!

Probabilistic program

Program synthesis

Hardware for sampling

Page 4: Principled  Approximations in Probabilistic Programming

DPMM Clustering

• In each iteration, update the cluster assignments of data points one at a time

• For each data point, compute the probability of it belonging to all existing clusters and an unseen cluster

• Sample from this probability distribution

Gaussian Dirichlet Process Mixture Model (DPMM)

Gibbs Sampling Algorithm

Cluster 3 Cluster 2

Cluster 1

Cluster 2

Cluster 1

Cluster 2

Cluster 1

New Cluster

Model

Page 5: Principled  Approximations in Probabilistic Programming

Sampling in Hardware

Prefix Sum Comparators

PRNG

Encoder

CLK

Prob

abili

ties

Sam

ple

32b 35b 1b

3b

32b

Idea: exploit errors!

Page 6: Principled  Approximations in Probabilistic Programming

Robustness to hardware faultsStuck-at Faults Transient Faults

Sampler

Clustering using

DPMM

Deka, Biplab. “On Fault Tolerance of Hardware Samplers”. Masters Thesis, University of Illinois at Urbana Champaign, 2014

Page 7: Principled  Approximations in Probabilistic Programming

Approximating compilers

Traditional compiler:• Input: Deterministic program• Goal: Executable semantically equivalent to source • Method: Syntax-guided translation

Approximating compiler:• Input: Probabilistic program• Goal:

– Satisfy basic boolean invariants– Minimize quantitative error

• Method: Program synthesis

Page 8: Principled  Approximations in Probabilistic Programming

Probabilistic programs

heightMan = Gaussian(177,64);heightWoman = Gaussian(164,64);assume(heightWoman > heightMan);return heightMan

Source: Tutorial on Infer.NET by John Winn and Tom Minka

Addition: assertions, angelic nondeterminism

More complex example: clustering

Page 9: Principled  Approximations in Probabilistic Programming

Probabilistic programming ++

• Random variables X: range over distributions

• Deterministic variables y– Either holes or temporaries

• Functions f(X1,..., Xk, y1,..., yk)– Can map random variables to deterministic ones

• Expectation, probability

• Assertions • Pareto-optimality goals

Page 10: Principled  Approximations in Probabilistic Programming

Example

X = Gaussian(??, 10);assume (X < 10);c = Pr(X > 0);assert (c > 0.7);minimize (c);

One synthesis algorithm in [CCS14]Based on probabilistic abstract interpretation

Hole

[CCS14] Chaudhuri, Clochard, Solar-Lezama. Bridging boolean and quantitative synthesis using smoothed proof search. POPL 2014.

Page 11: Principled  Approximations in Probabilistic Programming

Use in approximation

Holes = degree of approximation

Assertions = invariants, hard bounds

Declarative error minimization

Deterministic temporaries track resource

consumption

Synthesis = Compilation

Page 12: Principled  Approximations in Probabilistic Programming

Thank you!

Questions?