谷歌提出深度概率编程语言 Edward

简介:

Edward 官网对这门新语言的描述是:Edward 是一个用于概率建模、推理和评估的 Python 库。它是一个用于快速实验和研究概率模型的测试平台,其涵盖的模型范围从在小数据集上的经典层次模型到在大数据集上的复杂深度概率模型。Edward 融合了以下三个领域:贝叶斯统计学和机器学习、深度学习、概率编程。

它支持以下方式的建模:

定向图模型

神经网络(通过 Keras 和 TensorFlow Slim 等库)

条件特定的无向模型

贝叶斯非参数和概率程序

它支持以下方式的推理:

变分推理(Variational inference)

黑箱变分推理

随机变分推理

包容 KL 散度(Inclusive KL divergence):text{KL}(p|q)KL(p∥q)

最大后验估计

蒙特卡洛(Monte Carlo)

哈密尔顿蒙特卡罗(Hamiltonian Monte Carlo)

随机梯度 Langevin 动态

Metropolis-Hastings

推理的组成

期望最大化(Expectation-Maximization)

伪边界和 ABC 方法(Pseudo-marginal and ABC methods)

消息传递算法(Message passing algorithms)

它支持以下的模型评估和推理:

基于点的评估(Point-based evaluations)

后验预测检查(Posterior predictive checks)

Edward 构建于 TensorFlow 之上。它支持诸如计算图、分布式训练、CPU/GPU 集成、自动微分等功能,也可以用 TensorBoard 可视化。

以下是介绍论文的摘要介绍:

论文标题:深度概率编程(DEEP PROBABILISTIC PROGRAMMING)

image

摘要

我们提出了一种图灵完备的概率编程语言 Edward。Edward 构建于两种组合式表示的基础上——随机变量和推理(random variables and inference)。通过将推理看作「第一类公民」,与建模(modeling)一样,我们表明概率编程可以做到和传统深度学习一样灵活和有计算效率。

对于灵活性,Edward 让我们可以使用从点估计(point estimation)到变分推理和 MCMC 等各种可组合的推理方法来拟合相同的模型。此外,Edward 还可以将建模表征复用作推理的一部分,这能促进丰富的变分模型和生成对抗网络的设计。

对于效率,Edward 集成到了 TensorFlow 之中,在已有的概率系统基础上提供了显著的加速。比如,在基准 logistic 回归任务上,Edward 至少比 Stan 和 PyMC3 快 35 倍。

引言

深度神经网络的本质是组合式的(compositional)。用户可以以创造性的方式来将层连接起来,而无需担忧如何去执行测试(前向传播)或推理(基于梯度的优化,通过反向传播和自动微分)。在这篇论文中,我们为概率变成设计组合式表示(compositional representations)。概率编程让用户可以将生成概率模型指定为程序(program),然后将这些模型「编译(compile)」为推理过程(inference procedures)。概率模型本质上也是组合式的,而之前的大部分工作都集中在通过组合随机变量来构建丰富的概率程序上(Goodman et al., 2012; Ghahramani, 2015; Lake et al., 2016)。

但很少有研究考虑过用于推理的类似的组合性。相反,现在大多数已有的概率编程语言都将推理引擎当作从模型中抽象出来的黑箱来处理。这些方法不能代表在复用模型表征的概率推理中的最新进展。比如,在变分推理(Kingma & Welling, 2014; Rezende & Mohamed, 2015; Tran et al., 2016b)和生成对抗网络(Goodfellow et al., 2014)上的进展已经变得非常重要了。

我们提出了一种图灵完备的概率编程语言 Edward。Edward 构建于两种组合表示的基础上——随机变量和推理(random variables and inference)。我们给出了如何将 Edward 集成到已有的计算图框架(如 TensorFlow)中的方法。TensorFlow 这样的框架能够「免费」提供分布式训练、并行性、向量化和 GPU 支持等计算优势。我们还表明 Edward 可以如何让我们轻松使用从点估计(point estimation)到变分推理和 MCMC 等各种可组合的推理方法来拟合相同的模型。通过将推理看作「第一类公民」,与建模(modeling)一样,我们表明概率编程可以做到和传统深度学习一样灵活和有计算效率。比如,我们的哈密尔顿蒙特卡罗(Hamiltonian Monte Carlo)实现比现有的软件快 35 倍。
image

图 1:Beta-Bernoulli 程序(左)与其计算图(右)。从图中取 x 会生成一个有 50 个元素的二值向量

image

图 2:用于一个 28×28 像素图像的数据集的变自编码器:(左)图模型,其中虚线表示推理模型;(右)概率程序,带有 2 层神经网络

image

图 3:贝叶斯 RNN:(左)图模型;(右)概率程序。该程序的时间步骤未指定;其为循环使用了一个符号(tf.scan)

image

图 4:(左)变分推理;(右)蒙特卡洛

image

图 5: 生成式对抗网络:(左侧)概率图模型(右侧)概率程序。加入一些假数据以及训练其判别式模型,能不断强化该生成模型

image

图 6:LDA 文档主题生成模型,隐含狄利克雷分布 (Blei et al., 2003)

image

图 7: 高斯矩阵分解

文章转载自 开源中国社区 [http://www.oschina.net]

目录
相关文章
|
8月前
|
机器学习/深度学习 自然语言处理 负载均衡
揭秘混合专家(MoE)模型的神秘面纱:算法、系统和应用三大视角全面解析,带你领略深度学习领域的前沿技术!
【8月更文挑战第19天】在深度学习领域,混合专家(Mixture of Experts, MoE)模型通过整合多个小型专家网络的输出以实现高性能。从算法视角,MoE利用门控网络分配输入至专家网络,并通过组合机制集成输出。系统视角下,MoE需考虑并行化、通信开销及负载均衡等优化策略。在应用层面,MoE已成功应用于Google的BERT模型、Facebook的推荐系统及Microsoft的语音识别系统等多个场景。这是一种强有力的工具,能够解决复杂问题并提升效率。
355 2
|
11月前
|
机器学习/深度学习 自然语言处理 运维
深度探索变分自编码器:理论与应用代码之韵:探索编程艺术的无限可能
【5月更文挑战第31天】 在深度学习的众多架构中,变分自编码器(Variational Autoencoder, VAE)以其对数据生成和潜在空间建模的强大能力而脱颖而出。本文将深入探讨VAE的核心原理,包括其概率生成模型、变分推断以及重参数化技巧,并剖析其在多个领域的实际应用案例。通过细致的技术解析与实例演示,我们旨在为读者提供一个关于VAE的全面视角,同时探讨当前的研究动态及未来发展趋势。
|
11月前
|
机器学习/深度学习 人工智能
谷歌提出大规模ICL方法——强化和无监督
【5月更文挑战第26天】谷歌DeepMind团队提出Many-Shot ICL,一种强化和无监督学习方法,用于提升大型语言模型处理多样化任务的能力。通过提供更多示例,模型无需权重更新即可学习新任务。研究还引入Reinforced ICL和Unsupervised ICL,减少对人类生成输出的依赖。Many-Shot ICL能有效克服预训练偏见,但示例顺序对其性能至关重要。然而,NLL作为评估指标的局限性被指出,且增加示例数量可能降低性能。该研究为改进LLMs提供了新视角,但仍需在更多模型和场景中验证。[链接: https://arxiv.org/abs/2404.11018]
136 1
|
机器学习/深度学习 Web App开发 自动驾驶
顺序决策与基础模型如何交叉互惠?谷歌、伯克利等探讨更多可能
顺序决策与基础模型如何交叉互惠?谷歌、伯克利等探讨更多可能
153 0
|
机器学习/深度学习 编解码 人工智能
谷歌复用30年前经典算法,CV引入强化学习,网友:视觉RLHF要来了?
谷歌复用30年前经典算法,CV引入强化学习,网友:视觉RLHF要来了?
133 0
|
机器学习/深度学习 算法 测试技术
【吴恩达深度学习笔记-改善深层神经网络】——第一周深度学习的实用层面(1.1)
【吴恩达深度学习笔记-改善深层神经网络】——第一周深度学习的实用层面(1.1)
【吴恩达深度学习笔记-改善深层神经网络】——第一周深度学习的实用层面(1.1)
|
机器学习/深度学习 算法 网络架构
【吴恩达深度学习笔记-改善深层神经网络】——第一周深度学习的实用层面(1.3)
【吴恩达深度学习笔记-改善深层神经网络】——第一周深度学习的实用层面(1.3)
【吴恩达深度学习笔记-改善深层神经网络】——第一周深度学习的实用层面(1.3)
|
机器学习/深度学习 存储
【吴恩达深度学习笔记-改善深层神经网络】——第一周深度学习的实用层面(1.4)
【吴恩达深度学习笔记-改善深层神经网络】——第一周深度学习的实用层面(1.4)
【吴恩达深度学习笔记-改善深层神经网络】——第一周深度学习的实用层面(1.4)
|
机器学习/深度学习 算法
【吴恩达深度学习笔记-改善深层神经网络】——第一周深度学习的实用层面(1.2)
【吴恩达深度学习笔记-改善深层神经网络】——第一周深度学习的实用层面(1.2)
【吴恩达深度学习笔记-改善深层神经网络】——第一周深度学习的实用层面(1.2)
|
机器学习/深度学习 数据采集 编解码
数据和结构越大越精准!谷歌推出BigTransfer,计算机视觉领域最先进的迁移学习
近日,Google推出计算机视觉领域最先进的迁移学习模型Bigtransfer (BiT) 。BigTransfer (BiT) 是一组经过预先训练的模型,在新数据集上进行简单的迁移学习就能获得优秀的性能。
381 0
数据和结构越大越精准!谷歌推出BigTransfer,计算机视觉领域最先进的迁移学习