[论文解读] Deep Probabilistic Programming
Edward 是一种 Turing 完备的概率编程语言,将推断作为一等公民,整合 TensorFlow 提供速度,并支持灵活组合建模与推断方法,包括 VI、MCMC 和 GANs。
We propose Edward, a Turing-complete probabilistic programming language. Edward defines two compositional representations---random variables and inference. By treating inference as a first class citizen, on a par with modeling, we show that probabilistic programming can be as flexible and computationally efficient as traditional deep learning. For flexibility, Edward makes it easy to fit the same model using a variety of composable inference methods, ranging from point estimation to variational inference to MCMC. In addition, Edward can reuse the modeling representation as part of inference, facilitating the design of rich variational models and generative adversarial networks. For efficiency, Edward is integrated into TensorFlow, providing significant speedups over existing probabilistic systems. For example, we show on a benchmark logistic regression task that Edward is at least 35x faster than Stan and 6x faster than PyMC3. Further, Edward incurs no runtime overhead: it is as fast as handwritten TensorFlow.
研究动机与目标
- 通过引入一个 Turing 完备、可组合的语言来统一建模与推断,推进概率编程的进展。
- 在推断过程中实现模型表示的可重用性,以支持表达性变分和基于 GAN 的方法。
- 与计算图(TensorFlow)集成以实现接近手写代码的效率。
- 在推断方法(VI、MCMC、MAP、GAN 基方法)上展示灵活性,并具备对大数据的可扩展性。
- 提供基准测试和一个公开的预训练模型库(Probability Zoo)。
提出的方法
- 定义两种核心可组合表示:随机变量(作为带对数密度和采样的图嵌入对象)和推断(作为一等对象,改变后验参数)。
- 将概率程序嵌入计算图以实现丰富的模型-确定性混合和深度结构。
- 支持随机控制流和数据子采样,以在保持基于图的推断的同时扩展到海量数据。
- 通过模块化的 Inference 类提供多种推断算法的统一框架(变分推断、蒙特卡洛、MAP、基于 GAN 的方法)。
- 允许推断与建模相结合(如变分 EM 在 E 步和 M 步之间交替)。
- 展示与 TensorFlow 的端到端集成,以实现快速运行时和 GPU 加速(例如大规模逻辑回归上的 HMC)。
实验结果
研究问题
- RQ1是否可以通过将推断视为一等公民,使概率编程语言在灵活性和效率上达到深度学习的水平?
- RQ2如何将概率模型与推断以及彼此之间的关系进行组合,以支持变分推断、变分自编码器(VAEs)和 GAN 等的进展?
- RQ3将概率编程语言与计算图(如 TensorFlow)集成带来哪些性能与可扩展性方面的收益?
- RQ4在同一模型中对比不同的推断策略在如 VAEs 和贝叶斯循环神经网络等任务上的表现?
- RQ5是否可以将随机控制流和数据子采样有效整合到一个统一的 PPL 框架中?
主要发现
| 模型 / 推断 | 运行时间(s) |
|---|---|
| 手写 NumPy(1 CPU) | 534 |
| Stan(1 CPU) | 171 |
| PyMC3(12 CPU) | 30.0 |
| Edward(12 CPU) | 8.2 |
| 手写 TensorFlow(GPU) | 5.0 |
| Edward(GPU) | 4.9 |
- Edward 在基准测试中的速度显著优于现有的概率系统(如 HMC 和逻辑回归)。
- 在一个大型逻辑回归任务中,Edward 在 GPU 上比 Stan 快约 35 倍、比 PyMC3 快约 6 倍,且与手写 TensorFlow 的运行时开销相同。
- 变分与蒙特卡洛推断方法可以在同一模型中进行组合和比较,便于在不同目标函数和梯度估计之间进行灵活实验。
- Edward 使建模和推断在一个单一计算图中集成,允许在推断和建模组件之间重复使用表示。
- Probability Zoo 为预训练模型和后验因素提供社区资源,促进研究与可重复性。
- 关于变分自编码器和贝叶斯 RNN 的实验表明,能够通过组合推断和动态控制流,简化构建复杂概率程序的过程。
更好的研究,从现在开始
从论文设计到论文写作,大幅缩短您的研究时间。
无需绑定信用卡
本解读由 AI 生成,并经人工编辑审核。