[论文解读] Inducing Probabilistic Programs by Bayesian Program Merging
本文提出贝叶斯程序合并方法,通过迭代应用程序变换,将初始过拟合程序逐步压缩为更抽象、更具泛化能力的模型,从而从数据中学习概率程序。通过使用贝叶斯后验概率作为优化标准,该方法能够发现嵌套列表数据中的递归结构、参数化函数和随机模式,实现从少量样本中的有效泛化。
This report outlines an approach to learning generative models from data. We express models as probabilistic programs, which allows us to capture abstract patterns within the examples. By choosing our language for programs to be an extension of the algebraic data type of the examples, we can begin with a program that generates all and only the examples. We then introduce greater abstraction, and hence generalization, incrementally to the extent that it improves the posterior probability of the examples given the program. Motivated by previous approaches to model merging and program induction, we search for such explanatory abstractions using program transformations. We consider two types of transformation: Abstraction merges common subexpressions within a program into new functions (a form of anti-unification). Deargumentation simplifies functions by reducing the number of arguments. We demonstrate that this approach finds key patterns in the domain of nested lists, including parameterized sub-functions and stochastic recursion.
研究动机与目标
- 开发一种从小型数据集学习生成模型的方法,通过将模型表示为概率程序。
- 通过识别数据中抽象且可重用的模式,解决概率模型学习中的泛化挑战。
- 通过程序变换实现自动发现复杂结构,如递归和参数化函数。
- 将模型归纳问题形式化为贝叶斯搜索问题,以最大化给定数据下程序的后验概率。
- 展示程序变换(抽象化与去参数化)在诱导紧凑且可泛化模型方面的有效性。
提出的方法
- 将数据表示为代数数据类型,并使用均匀先验构建一个能精确生成观测样本的初始程序。
- 应用两种核心程序变换:抽象化(通过反合一将公共子表达式合并为函数)和去参数化(减少函数参数数量以诱导泛化)。
- 使用束搜索探索变换后程序的空间,以程序后验概率 $ P(M|D) $ 为指导,平衡似然与模型复杂度。
- 在列表域中使用蒙特卡洛采样和近似推理估计似然,以评估程序质量。
- 利用概率编程语言(Church 的子集)表达包含递归、高阶函数和随机选择的模型。
- 将搜索操作形式化为语法变换,以在保持正确性的前提下提升压缩效果和泛化能力。
实验结果
研究问题
- RQ1程序变换能否系统性地从原始数据中诱导出抽象且可泛化的概率程序?
- RQ2贝叶斯模型合并方法如何扩展到超越简单语法的表达性概率程序?
- RQ3在小样本设置下,抽象化与去参数化在多大程度上能提升泛化能力?
- RQ4能否通过后验驱动搜索自动发现递归和参数化函数?
- RQ5该方法在从单个或少量样本中学习复杂嵌套数据结构(如树和藤蔓结构)方面的有效性如何?
主要发现
- 系统能仅从一个观测样本成功诱导出递归程序,例如在“藤蔓”示例中,单一样本即可学习到随机递归结构。
- 在“树”示例中,系统学习到用于花朵的参数化函数和递归分支结构,其中 F1、F2 和 F3 对应该核心可重用组件。
- 当 $\alpha=3$ 时,系统诱导出的模型能跨多个分支实例实现泛化,展示了先验在压缩与似然之间平衡的作用。
- 该方法发现了参数化子函数和随机递归,如在花朵和花瓣构造中所示,体现出对具有共享结构的噪声数据的建模能力。
- 束搜索(深度为 10,束宽为 1)成功探索了搜索空间,并生成了能生成多样且合理样本、与训练数据匹配的模型。
- 通过函数抽象和参数减少,诱导出的程序通过压缩重复模式(如共享的颜色和大小分布)实现了较高的后验概率。
更好的研究,从现在开始
从阅读论文到最终审阅,大幅缩短您的研究时间。
无需绑定信用卡
本解读由 AI 生成,并经人工编辑审核。