Gen: A General-Purpose Probabilistic Programming System with Programmable Inference
Name
MIT-CSAIL-TR-2018-020.pdf
Size
1.15 MB
Format
Adobe PDF
Checksum (MD5)
cfcc9907547614ce5570c38b91ac82a8
Author(s) • • •
Cusumano-Towner, Marco F.
Saad, Feras A.
Lew, Alexander
Mansinghka, Vikash K.
Date Issued
November 26, 2018
Series/Report no.
;MIT-CSAIL-TR-2018-020
Abstract
Probabilistic modeling and inference are central to many fields. A key challenge for wider adoption of probabilistic programming languages is designing systems that are both flexible and performant. This paper introduces Gen, a new probabilistic programming system with novel language con- structs for modeling and for end-user customization and optimization of inference. Gen makes it practical to write probabilistic programs that solve problems from multiple fields. Gen programs can combine generative models written in Julia, neural networks written in TensorFlow, and custom inference algorithms based on an extensible library of Monte Carlo and numerical optimization techniques. This paper also presents techniques that enable Gen’s combination of flexibility and performance: (i) the generative function inter- face, an abstraction for encapsulating probabilistic and/or differentiable computations; (ii) domain-specific languages with custom compilers that strike different flexibility/per- formance tradeoffs; (iii) combinators that encode common patterns of conditional independence and repeated compu- tation, enabling speedups from caching; and (iv) a standard inference library that supports custom proposal distributions also written as programs in Gen. This paper shows that Gen outperforms state-of-the-art probabilistic programming systems, sometimes by multiple orders of magnitude, on problems such as nonlinear state-space modeling, structure learning for real-world time series data, robust regression, and 3D body pose estimation from depth images.
Persistent DSpace Link