A Type System and 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. Unfortunately, it is easy to use these constructs to write unsound programs that appear to run correctly but that produce meaningless results. This paper presents a denotational semantics for higher-order probabilistic programs with programmable inference, 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 are manipulated during inference. 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.
This program is tentative and subject to change.
Wed 22 Jan
|10:30 - 10:51|
|10:51 - 11:13|
|11:13 - 11:35|