[论文解读] Composing inference algorithms as program transformations
本文提出了一种模块化框架,将概率推理算法表示为程序变换,从而能够从概率模型自动生成精确和近似推理过程。通过将推理视为将一个概率程序转换为另一个(例如,从模型转换为采样器或密度计算器)的变换,该方法支持多种推理方法的组合(如将精确推理与MCMC或变分推理结合),同时实现与WebPPL和JAGS等先进系统相当的性能。
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 make this code generation modular by decomposing inference algorithms into reusable program-to-program transformations. These transformations perform exact inference as well as generate probabilistic programs that compute expectations, densities, and MCMC samples. The resulting inference procedures are about as accurate and fast as other probabilistic programming systems on real-world problems.
研究动机与目标
- 减少为每种模型与算法组合从零开始手动实现推理算法的繁琐且易出错的工作量。
- 在不重写代码的前提下,支持在相同模型上组合多种推理方法(如精确推理与近似推理)。
- 通过将推理表示为将概率程序转换为其他概率程序的变换,实现模块化、可组合的推理。
- 通过变换组合重用现有推理实现,支持构建新颖的推理流水线。
- 在保持模块化和形式化组合性的同时,实现与现有概率编程系统相当的性能。
提出的方法
- 将概率模型表示为概率程序,使推理可表示为对这些程序的变换。
- 使用程序到程序的变换(如分解和期望)生成实现特定推理任务的新程序。
- 按顺序应用变换以组合多种推理方法,例如对模型的一部分使用精确推理,对另一部分使用MCMC。
- 支持计算密度、条件分布和MCMC采样器的变换,即使在存在确定性依赖关系的情况下也能处理。
- 通过简化和循环展开生成优化代码,实现在大规模数据集上的高效执行。
- 利用形式等价性(如共轭性)组合近似与精确推理方法。
实验结果
研究问题
- RQ1是否可以通过变换概率程序而非从零重写,系统性地组合推理算法?
- RQ2如何通过统一的程序变换接口,在同一模型上组合精确与近似推理方法?
- RQ3程序变换能否生成与手工优化系统(如WebPPL和JAGS)性能相当的推理过程?
- RQ4在推理变换过程中,对确定性依赖关系和复杂模型结构的处理能力如何?
- RQ5是否可以使用可重用的变换组件构建模块化、可组合的推理流水线?
主要发现
- 该系统生成的推理过程在真实问题上的准确性和速度与其他概率编程系统相当。
- 在卡尔曼滤波任务中,Hakaru采样器的每样本有效样本数(ESS)高于WebPPL,表明采样效率更高。
- 在高斯混合模型中,Hakaru在一次遍历后准确率超过50%,优于JAGS需要多次遍历才能追上的表现。
- 在20 Newsgroups语料库的文档分类任务中,Hakaru的凝聚Gibbs采样器在一次遍历后准确率高于JAGS,并且在不同数据规模下始终保持优势。
- Hakaru的初始化时间与数据规模无关,保持恒定,而JAGS的初始化时间随数据规模增长,表明Hakaru在大规模数据集上更具可扩展性。
- 尽管Hakaru的原始采样速度比JAGS慢约一个数量级,但其性能仍具实用性且具有竞争力,尤其考虑到其能够重用计算并生成优化代码的能力。
更好的研究,从现在开始
从阅读论文到最终审阅,大幅缩短您的研究时间。
无需绑定信用卡
本解读由 AI 生成,并经人工编辑审核。