Trace types and denotational semantics for sound programmable inference in probabilistic languages

Modern probabilistic programming languages aim to formalize and automate key aspects of probabilistic modeling and inference. Many languages provide constructs for programmable inference that enable developers to improve inference speed and accuracy by tailoring an algorithm for use with a particula...

Full description

Bibliographic Details
Main Authors: Lew, Alexander (Author), Cusumano-Towner, Marco F. (Author), Sherman, Benjamin (Author), Carbin, Michael James (Author), Mansinghka, Vikash K (Author)
Format: Article
Language:English
Published: Association for Computing Machinery (ACM), 2021-03-03T12:03:23Z.
Subjects:
Online Access:Get fulltext
LEADER 01864 am a22002053u 4500
001 130058
042 |a dc 
100 1 0 |a Lew, Alexander  |e author 
700 1 0 |a Cusumano-Towner, Marco F.  |e author 
700 1 0 |a Sherman, Benjamin  |e author 
700 1 0 |a Carbin, Michael James  |e author 
700 1 0 |a Mansinghka, Vikash K  |e author 
245 0 0 |a Trace types and denotational semantics for sound programmable inference in probabilistic languages 
260 |b Association for Computing Machinery (ACM),   |c 2021-03-03T12:03:23Z. 
856 |z Get fulltext  |u https://hdl.handle.net/1721.1/130058 
520 |a Modern probabilistic programming languages aim to formalize and automate key aspects of probabilistic modeling and inference. Many languages provide constructs for programmable inference that enable developers to improve inference speed and accuracy by tailoring an algorithm for use with a particular model or dataset. Unfortunately, it is easy to use these constructs to write unsound programs that appear to run correctly but produce incorrect results. To address this problem, we present a denotational semantics for programmable inference in higher-order probabilistic programming languages, along with a type system that ensures that well-typed inference programs are sound by construction. A central insight is that the type of a probabilistic expression can track the space of its possible execution traces, not just the type of value that it returns, as these traces are often the objects that inference algorithms manipulate. We use our semantics and type system to establish soundness properties of custom inference programs that use constructs for variational, sequential Monte Carlo, importance sampling, and Markov chain Monte Carlo inference. 
546 |a en 
655 7 |a Article 
773 |t 10.1145/3371087 
773 |t Proceedings of the ACM on Programming Languages