Skip to main content
QUICK REVIEW

[论文解读] A Dynamic Programming Algorithm for Inference in Recursive Probabilistic Programs

Andreas Stuhlmüller, Noah D. Goodman|arXiv (Cornell University)|Jun 15, 2012
Bayesian Modeling and Causal Inference参考文献 12被引用 23
一句话总结

本文提出一种动态规划算法,通过将递归概率程序编译为因子化和积网络(FSPN),实现精确推断。FSPN 显式建模子分布之间的依赖关系,包括循环依赖。该算法通过对拓扑有序的强连通分量进行不动点迭代来求解,即使在先前方法失效的证据无限情形下,也能实现高效边缘化。

ABSTRACT

We describe a dynamic programming algorithm for computing the marginal distribution of discrete probabilistic programs. This algorithm takes a functional interpreter for an arbitrary probabilistic programming language and turns it into an efficient marginalizer. Because direct caching of sub-distributions is impossible in the presence of recursion, we build a graph of dependencies between sub-distributions. This factored sum-product network makes (potentially cyclic) dependencies between subproblems explicit, and corresponds to a system of equations for the marginal distribution. We solve these equations by fixed-point iteration in topological order. We illustrate this algorithm on examples used in teaching probabilistic models, computational cognitive science research, and game theory.

研究动机与目标

  • 解决由于嵌套条件和自递归导致朴素枚举不可行的递归概率程序中的精确推断挑战。
  • 克服现有动态规划方法的局限性,即要求计算图无环,无法处理证据无限的计算。
  • 通过利用递归调用中共享的子结构,即使子分布之间存在循环依赖,也能实现概率程序的高效边缘化。
  • 提供一种通用解决方案,适用于任何离散概率编程语言的函数式解释器,无需为特定模型设计推断算法。
  • 通过支持教学、认知科学和博弈论中的实际应用,实现对小型但结构复杂的模型的精确推断。

提出的方法

  • 将概率程序编译为因子化和积网络(FSPN),以显式表示子分布之间的依赖关系,包括递归依赖。
  • 构建子分布的依赖图,以表示控制边缘分布的方程组。
  • 将依赖图中的顶点聚类为强连通分量(SCC),以处理循环依赖。
  • 对每个 SCC 内的方程组应用不动点迭代,确保收敛到正确的边缘分布。
  • 利用 SCC 的拓扑排序,以尊重依赖顺序的方式处理分量,从而在不动点迭代中保持正确性。
  • 利用解释器的递归结构,自动暴露可重用的子计算,实现高效边缘化,而无需硬编码推断逻辑。

实验结果

研究问题

  • RQ1能否在涉及随机自递归和证据无限计算的递归概率程序中,高效执行精确推断?
  • RQ2如何将动态规划推广以处理概率程序中子分布之间的循环依赖?
  • RQ3在不依赖特定模型优化的情况下,能否从函数式解释器构建出通用的推断算法?
  • RQ4与拒绝采样和 MCMC 相比,该方法在具有嵌套条件的小型复杂模型上的性能提升如何?
  • RQ5该方法能否处理认知科学和博弈论中的经典问题(如蓝眼岛民谜题),在这些情况下精确推断原本是不可行的?

主要发现

  • 该算法成功计算了递归概率程序的精确边缘分布,包括证据无限计算的情形,而此前的动态规划方法(如 IBAL 和 PRISM)无法处理此类情况。
  • 该方法实现了对人口规模为 4 的蓝眼岛民谜题的精确推断,而 MCMC 和拒绝采样因指数级拒绝率而失效。
  • 对拓扑有序的强连通分量进行不动点迭代,即使在子分布之间存在循环依赖的情况下,也能收敛到正确的边缘分布。
  • 通过共享子计算并避免冗余路径探索,该算法在性能上优于朴素枚举和拒绝采样。
  • 该方法将和积网络推广至处理递归和循环依赖,扩展了其在更广泛概率程序类别中的适用性。
  • 实证评估表明,该算法可扩展至具有小型但复杂结构的模型,适用于认知科学和博弈论的教学与研究。

更好的研究,从现在开始

从论文设计到论文写作,大幅缩短您的研究时间。

无需绑定信用卡

本解读由 AI 生成,并经人工编辑审核。