Scaling Exact Inference for Discrete Probabilistic Programs

05/18/2020
by   Steven Holtzen, et al.
0

Probabilistic programming languages (PPLs) are an expressive means of representing and reasoning about probabilistic models. The computational challenge of probabilistic inference remains the primary roadblock for applying PPLs in practice. Inference is fundamentally hard, so there is no one-size-fits all solution. In this work, we target scalable inference for an important class of probabilistic programs: those whose probability distributions are discrete. Discrete distributions are common in many fields, including text analysis, network verification, artificial intelligence, and graph analysis, but they prove to be challenging for existing PPLs. We develop a domain-specific probabilistic programming language called Dice that features a new approach to exact discrete probabilistic program inference. Dice exploits program structure in order to factorize inference, enabling us to perform exact inference on probabilistic programs with hundreds of thousands of random variables. Our key technical contribution is a new reduction from discrete probabilistic programs to weighted model counting (WMC). This reduction separates the structure of the distribution from its parameters, enabling logical reasoning tools to exploit that structure for probabilistic inference. We (1) show how to compositionally reduce Dice inference to WMC, (2) prove this compilation correct with respect to a denotational semantics, (3) empirically demonstrate the performance benefits over prior approaches, and (4) analyze the types of structure that allow Dice to scale to large probabilistic programs.

READ FULL TEXT

page 1

page 2

page 3

page 4

research
04/03/2019

Symbolic Exact Inference for Discrete Probabilistic Programs

The computational burden of probabilistic inference remains a hurdle for...
research
07/25/2023

Scaling Integer Arithmetic in Probabilistic Programs

Distributions on integers are ubiquitous in probabilistic modeling but r...
research
01/09/2021

Paradoxes of Probabilistic Programming

Probabilistic programming languages allow programmers to write down cond...
research
04/08/2021

Sound Probabilistic Inference via Guide Types

Probabilistic programming languages aim to describe and automate Bayesia...
research
04/17/2019

Scalable Verification of Probabilistic Networks

This paper presents McNetKAT, a scalable tool for verifying probabilisti...
research
07/23/2020

PClean: Bayesian Data Cleaning at Scale with Domain-Specific Probabilistic Programming

Data cleaning can be naturally framed as probabilistic inference in a ge...
research
11/12/2022

Formally Verified Samplers From Probabilistic Programs With Loops and Conditioning

We present Zar: a formally verified compiler pipeline from discrete prob...

Please sign up or login with your details

Forgot password? Click here to reset