Pyro: 深度通用概率编程
本文分析了得分估计器作为最基础和多功能的变分推理算法,并利用语义学和程序分析中的工具来阐述这个算法在程序中的作用,揭示出算法所做假设的内在局限性,提出了证明这些假设的规则,并用非平凡的连续数学事实来代替假设中的积分要求,最终发展了一种运用静态程序分析来满足假设条件的方法,并应用于 Pyro 中的八个代表性模型中,表明这种方法是可行的。
Jul, 2019
本文介绍了 NumPyro 库,它是 Pyro 概率编程语言的一个轻量级后端,具有相同的建模接口、语言原语和效果处理抽象。效果处理程序允许将 Pyro 的建模 API 扩展到 NumPyro,本文演示了使用程序变换与 Pyro 的效果处理程序组合的强大功能。所提供的迭代式 No-U-Turn 采样器(NUTS)的 NumPyro 实现,具有比现有替代方案更快的速度,适用于小型和大型数据集。
Dec, 2019
本文介绍了 Borch,这是一种建立在 PyTorch 之上的可扩展深度通用概率编程语言,旨在将概率建模的原则方法与深度神经网络的可扩展性结合起来。
Sep, 2022
本书介绍了概率编程的基础和技术,主要包括概率编程语言的设计和构建、基础推理算法和高阶概率编程语言、概率编程与可微分编程的交叉应用,尤其是深度概率编程系统的设计与语言特性对其的影响。
Sep, 2018
该研究介绍了一种使用深度神经网络在概率编程模型中分摊推断成本的方法,并将深度学习与概率编程方法的优势相结合。这种名为 “编译推断” 的方法将用通用编程语言编写的概率程序的语义规范转换为用神经网络规范语言表示的训练过的神经网络,从而实现了原始模型的近似推断。
Oct, 2016
描述了一种将概率编程嵌入到深度学习中的简单、低级别的方法,它将概率编程精简为一个抽象 - 随机变量。使用 TensorFlow 的轻量级实现实现了许多应用程序:基于模型的并行变分自动编码器(VAE);基于数据的并行自回归模型(Image Transformer);和多 GPU NUTS No-U-Turn Sampler。在 64x64 ImageNet 和 256x256 CelebA-HQ 上都达到了最优线性加速。
Nov, 2018
提出一种新型的概率编程框架,通过跨平台的概率执行协议直接连接到现有的大规模模拟器,允许通用推理引擎以语言无关的方式记录和控制模拟器内的随机数,并通过后验推断的高度可解释性来演示其技术应用于粒子物理学,提升推断效率。
Jul, 2018
我们提出了一种基于组合程序转换的方法,用于支持概率编程语言中的变分推断,该方法能够灵活地处理多个关键问题,包括自动微分、密度累积、跟踪和无偏梯度估计策略。此外,相比于现有的支持变分推断的概率编程语言,我们的设计在用户定义的目标、梯度估计策略和模型、变分族类别方面具有更高的表达能力。
Jun, 2024