Composing Modeling and Inference Operations with Probabilistic Program Combinators
Probabilistic programs with dynamic computation graphs can define measures
over sample spaces with unbounded dimensionality, which constitute programmatic
analogues to Bayesian nonparametrics. Owing to the generality of this model
class, inference relies on black-box' Monte Carlo methods that are often not
able to take advantage of conditional independence and exchangeability, which
have historically been the cornerstones of efficient inference. We here seek to
develop a middle ground' between probabilistic models with fully dynamic and
fully static computation graphs. To this end, we introduce a combinator library
for the Probabilistic Torch framework. Combinators are functions that accept
models and return transformed models. We assume that models are dynamic, but
that model composition is static, in the sense that combinator application
takes place prior to evaluating the model on data. Combinators provide
primitives for both model and inference composition. Model combinators take the
form of classic functional programming constructs such as map and reduce. These
constructs define a computation graph at a coarsened level of representation,
in which nodes correspond to models, rather than individual variables.
Inference combinators implement operations such as importance resampling and
application of a transition kernel, which alter the evaluation strategy for a
model whilst preserving proper weighting. Owing to this property, models
defined using combinators can be trained using stochastic methods that optimize
either variational or wake-sleep style objectives. As a validation of this
principle, we use combinators to implement black box inference for hidden
Markov models.
Code (0)
등록된 구현이 없습니다.
Similar Papers 제목 키워드 기반
Composing inference algorithms as program transformations
Probabilistic inference procedures are usually coded painstakingly from scratch, for each target model and each inference algorithm. We reduce this effort by generating inference procedures from models automatically. We …
Code GenerationProbabilistic ProgrammingStochastically Differentiable Probabilistic Programs
Probabilistic programs with mixed support (both continuous and discrete latent random variables) commonly appear in many probabilistic programming systems (PPSs). However, the existence of the discrete random variables p…
Probabilistic ProgrammingScaling Integer Arithmetic in Probabilistic Programs
Distributions on integers are ubiquitous in probabilistic modeling but remain challenging for many of today's probabilistic programming languages (PPLs). The core challenge comes from discrete structure: many of today's …
Probabilistic ProgrammingA Heavy-Tailed Algebra for Probabilistic Programming
Despite the successes of probabilistic models based on passing noise through neural networks, recent work has identified that such methods often fail to capture tail behavior accurately, unless the tails of the base dist…
Probabilistic ProgrammingVariational InferenceMulti-Model Probabilistic Programming
Probabilistic programming makes it easy to represent a probabilistic model as a program. Building an individual model, however, is only one step of probabilistic modeling. The broader challenge of probabilistic modeling …
modelProbabilistic Programming