C3:使用延续和调用站点缓存的概率程序的轻量级增量化MCMC
C3: Lightweight Incrementalized MCMC for Probabilistic Programs using Continuations and Callsite Caching
摘要:
轻量级的,源到源的转换方法来实现MCMC的概率程序设计语言是流行的简单,支持现有的确定性代码,并能够在现有的快速运行时执行。然而,他们也很慢,需要一个完整的重新执行该计划的每一个大都会黑斯廷斯的建议。我们提出了一个新的扩展的轻量级方法,C3,它使高效,增量重新执行MH的建议。C3基于两个核心思想:将概率程序转换为连续传递风格(CPS),以及缓存函数调用的结果。我们表明,在几个常见的模型,C3减少了20- 100倍的建议运行时,在某些情况下,减少运行时的复杂性从线性模型大小为常数。我们还展示了一个复杂的逆过程建模应用程序上的近一个数量级的加速。
英文摘要:
Lightweight, source-to-source transformation approaches to implementing MCMC for probabilistic programming languages are popular for their simplicity, support of existing deterministic code, and ability to execute on existing fast runtimes. However, they are also slow, requiring a complete re-execution of the program on every Metropolis Hastings proposal. We present a new extension to the lightweight approach, C3, which enables efficient, incrementalized re-execution of MH proposals. C3 is based on two core ideas: transforming probabilistic programs into continuation passing style (CPS), and caching the results of function calls. We show that on several common models, C3 reduces proposal runtime by 20-100x, in some cases reducing runtime complexity from linear in model size to constant. We also demonstrate nearly an order of magnitude speedup on a complex inverse procedural modeling application.
机构、总结、中文摘要均由AI分析而来,可能存在错误,请以论文正文为准。