Search papers, labs, and topics across Lattice.
This paper introduces a method for enhancing the efficiency of Markov Chain Monte Carlo (MCMC) inference in probabilistic programming by translating programs into dynamic graphs that capture data dependencies. By leveraging the fact that most proposed samples are minor variations of previous ones, the approach allows for selective recomputation, significantly reducing unnecessary calculations. The implementation aligns with functional programming paradigms, facilitating the expression of both Bayesian networks and universal probabilistic programming languages, thus improving inference precision and speed.
Transforming probabilistic programs into dynamic graphs can drastically cut down on computation time, enabling faster and more precise MCMC inference.
An important aspect of making inference based on a probabilistic program practical is efficiency; faster evaluation enables more work per unit of time, which can be translated into more precision. Inference via Markov chain Monte Carlo has a property that can be favorably exploited for efficiency: most proposed samples are computed as minor variations of previous samples, i.e., a clever implementation can skip computations pertaining to what is unchanged. This paper provides an approach for automatically translating a probabilistic program to a dynamic graph, reminiscent of functional reactive programming, that explicitly represents data dependencies, enabling proposals to only recompute the parts of the graph that depend on redrawn random variables. The graph-building interface follows familiar functional programming interfaces, which also connect to their expressiveness in terms of probabilistic programming: models using the applicative functor portion express Bayesian networks, while those using monads represent universal probabilistic programming languages.