AILGPLAug 21, 2020

Transforming Probabilistic Programs for Model Checking

arXiv:2008.09680v1
AI Analysis

This work addresses the problem of time-consuming and error-prone model checking for probabilistic programming users, offering an incremental improvement by automating parts of a robust Bayesian workflow.

The paper tackles automating model checking in probabilistic programming by transforming programs into efficient forward-sampling forms, enabling automation of Prior Predictive Checks and Simulation-Based Calibration for Stan users.

Probabilistic programming is perfectly suited to reliable and transparent data science, as it allows the user to specify their models in a high-level language without worrying about the complexities of how to fit the models. Static analysis of probabilistic programs presents even further opportunities for enabling a high-level style of programming, by automating time-consuming and error-prone tasks. We apply static analysis to probabilistic programs to automate large parts of two crucial model checking methods: Prior Predictive Checks and Simulation-Based Calibration. Our method transforms a probabilistic program specifying a density function into an efficient forward-sampling form. To achieve this transformation, we extract a factor graph from a probabilistic program using static analysis, generate a set of proposal directed acyclic graphs using a SAT solver, select a graph which will produce provably correct sampling code, then generate one or more sampling programs. We allow minimal user interaction to broaden the scope of application beyond what is possible with static analysis alone. We present an implementation targeting the popular Stan probabilistic programming language, automating large parts of a robust Bayesian workflow for a wide community of probabilistic programming users.

Foundations

The foundational work for this paper's niche, ranked by how specifically the neighbourhood builds on it — not by global fame.

Your Notes