Smoothness Analysis for Probabilistic Programs with Application to Optimised Variational Inference

08/22/2022
by   Wonyeol Lee, et al.
0

We present a static analysis for discovering differentiable or more generally smooth parts of a given probabilistic program, and show how the analysis can be used to improve the pathwise gradient estimator, one of the most popular methods for posterior inference and model learning. Our improvement increases the scope of the estimator from differentiable models to non-differentiable ones without requiring manual intervention of the user; the improved estimator automatically identifies differentiable parts of a given probabilistic program using our static analysis, and applies the pathwise gradient estimator to the identified parts while using a more general but less efficient estimator, called score estimator, for the rest of the program. Our analysis has a surprisingly subtle soundness argument, partly due to the misbehaviours of some target smoothness properties when viewed from the perspective of program analysis designers. For instance, some smoothness properties are not preserved by function composition, and this makes it difficult to analyse sequential composition soundly without heavily sacrificing precision. We formulate five assumptions on a target smoothness property, prove the soundness of our analysis under those assumptions, and show that our leading examples satisfy these assumptions. We also show that by using information from our analysis instantiated for differentiability, our improved gradient estimator satisfies an important differentiability requirement and thus computes the correct estimate on average (i.e., returns an unbiased estimate) under a regularity condition. Our experiments with representative probabilistic programs in the Pyro language show that our static analysis is capable of identifying smooth parts of those programs accurately, and making our improved pathwise gradient estimator exploit all the opportunities for high performance in those programs.

READ FULL TEXT

page 1

page 2

page 3

page 4

research
07/20/2019

Towards Verified Stochastic Variational Inference for Probabilistic Programs

Probabilistic programming is the idea of writing models from statistics ...
research
08/21/2020

Transforming Probabilistic Programs for Model Checking

Probabilistic programming is perfectly suited to reliable and transparen...
research
06/01/2018

Reparameterization Gradient for Non-differentiable Models

We present a new algorithm for stochastic variational inference that tar...
research
06/02/2021

A Differentiable Point Process with Its Application to Spiking Neural Networks

This paper is concerned about a learning algorithm for a probabilistic m...
research
03/01/2021

Meta-Learning an Inference Algorithm for Probabilistic Programs

We present a meta-algorithm for learning a posterior-inference algorithm...
research
02/10/2023

C-rusted: The Advantages of Rust, in C, without the Disadvantages

C-rusted is an innovative technology whereby C programs can be (partly) ...
research
09/07/2017

Probabilistic Analysis Based On Symbolic Game Semantics and Model Counting

Probabilistic program analysis aims to quantify the probability that a g...

Please sign up or login with your details

Forgot password? Click here to reset