
Principled Approximations in Probabilistic Programming and Hardware Fault Tolerance
Explore the world of probabilistic programming with advancements in principled approximations. Delve into robustness to hardware faults in sampler clustering using DPMM. Discover the concept of approximating compilers and the implementation of probabilistic programs. This collection covers a range of topics from algorithms to architecture, offering insights into the innovative field of computing.
Download Presentation

Please find below an Image/Link to download the presentation.
The content on the website is provided AS IS for your information and personal use only. It may not be sold, licensed, or shared on other websites without obtaining consent from the author. If you encounter any issues during the download, it is possible that the publisher has removed the file from their server.
You are allowed to download the files provided on this website for personal or commercial use, subject to the condition that they are used lawfully. All files are the property of their respective owners.
The content on the website is provided AS IS for your information and personal use only. It may not be sold, licensed, or shared on other websites without obtaining consent from the author.
E N D
Presentation Transcript
Principled Approximations in Probabilistic Programming Biplab Deka Rakesh Kumar UIUC Swarat Chaudhuri Rice University
The computing stack (approximation) Algorithms Compiler and runtime Architecture The APPROX view: with probabilities and approximations!
The computing stack Algorithms Compiler and runtime Architecture The APPROX view: with probabilities and approximations!
DPMM Clustering Model Gaussian Dirichlet Process Mixture Model (DPMM) New Cluster Cluster 2 Cluster 3 Cluster 2 Cluster 2 Gibbs Sampling Algorithm 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 Cluster 1 Cluster 1 Cluster 1
Sampling in Hardware 35b 1b 32b Probabilities Sample 3b Comparators Prefix Sum Encoder 32b PRNG CLK Idea: exploit errors!
Robustness to hardware faults Stuck-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
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
Probabilistic programs heightMan = Gaussian(177,64); heightWoman = Gaussian(164,64); assume(heightWoman > heightMan); return heightMan More complex example: clustering Addition: assertions, angelic nondeterminism Source: Tutorial on Infer.NET by John Winn and Tom Minka
Probabilistic programming ++ Random variables X: range over distributions Deterministic variables y Either holesor temporaries Functions f(X1,..., Xk, y1,..., yk) Can map random variables to deterministic ones Expectation, probability Assertions Pareto-optimality goals
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 [CCS14] Chaudhuri, Clochard, Solar-Lezama. Bridging boolean and quantitative synthesis using smoothed proof search. POPL 2014.
Use in approximation Holes = degree of approximation Assertions = invariants, hard bounds Declarative error minimization Deterministic temporaries track resource consumption Synthesis = Compilation
Thank you! Questions?