Probabilistic programming with programmable inference

© 2018 Copyright held by the owner/author(s). We introduce inference metaprogramming for probabilistic programming languages, including new language constructs, a formalism, and the first demonstration of effectiveness in practice. Instead of relying on rigid black-box inference algorithms hard-code...

Full description

Bibliographic Details
Main Authors: Mansinghka, Vikash K. (Author), Schaechtle, Ulrich (Author), Handa, Shivam (Author), Radul, Alexey (Author), Chen, Yutian (Author), Rinard, Martin (Author)
Format: Article
Language:English
Published: ACM, 2021-11-01T16:59:51Z.
Subjects:
Online Access:Get fulltext
Description
Summary:© 2018 Copyright held by the owner/author(s). We introduce inference metaprogramming for probabilistic programming languages, including new language constructs, a formalism, and the first demonstration of effectiveness in practice. Instead of relying on rigid black-box inference algorithms hard-coded into the language implementation as in previous probabilistic programming languages, inference metaprogramming enables developers to 1) dynamically decompose inference problems into subproblems, 2) apply inference tactics to subproblems, 3) alternate between incorporating new data and performing inference over existing data, and 4) explore multiple execution traces of the probabilistic program at once. Implemented tactics include gradient-based optimization, Markov chain Monte Carlo, variational inference, and sequental Monte Carlo techniques. Inference metaprogramming enables the concise expression of probabilistic models and inference algorithms across diverse fields, such as computer vision, data science, and robotics, within a single probabilistic programming language.