Incrementalizing MCMC in Probabilistic Programs Through Tracing and Slicing

semanticscholar(2013)

引用 2|浏览2
暂无评分
摘要
Probabilistic programming enables high-level specification of complex probabilistic models without the need for hand-built inference techniques. We present a dynamic compilation technique for increasing the efficiency of Markov Chain Monte Carlo (MCMC) inference on probabilistic programs. We focus on Church, a probabilistic extension of untyped call-by-value lambda calculus. MCMC in this setting is a random walk over program paths; it is extremely expensive because each iteration of MCMC requires a complete execution of the program with side computations that track random choices and probabilities. However, there exist many opportunities to remove redundant computation. In particular, we exploit the fact that only some random choices influence control flow. Partially evaluating these structural choices away results in a trace that can be optimized via existing techniques from JIT compilers and incremental computation. This minimizes the amount of work done at each step in the random walk. We evaluate this technique on several representative probabilistic models, finding that we achieve orders of magnitude speedup compared with unoptimized Church MCMC. Furthermore, our technique becomes competitive with inference engines for more specialized and less expressive statistical languages.
更多
查看译文
AI 理解论文
溯源树
样例
生成溯源树,研究论文发展脉络
Chat Paper
正在生成论文摘要