Amortized Rejection Sampling in Universal Probabilistic Programming
University of British Columbia(不列颠哥伦比亚大学);Georgia Institute of Technology(佐治亚理工学院);University of Oxford(牛津大学);MILA(蒙特利尔学习算法研究所)
在具有无限循环的概率规划中,摊销推理的朴素方法可以产生具有无穷方差的估计量。这是特别真实的重要性采样推理程序,明确包括拒绝抽样的一部分,用户编程的生成过程。本文提出了一种新的有效的摊余重要性采样估计量。我们证明了我们的估计有限方差和经验证明我们的方法的正确性和效率相比,现有的替代品生成程序包含拒绝采样循环,并讨论如何实现我们的方法在一个通用的概率编程框架。
2022-03-29 cs.AI cs.LG stat.ML
Inference Compilation and Universal Probabilistic Programming
University of Oxford(牛津大学)
我们介绍了一种使用深度神经网络来摊销通用概率程序设计语言引起的模型族中的推理成本的方法,建立了一个结合概率编程和深度学习方法优势的框架。我们称我们所做的是“编译推理”,因为我们的方法将以通用程序设计语言编写的概率程序形式的推理问题的指称规范转换为以神经网络规约语言表示的训练过的神经网络。当在测试时,该神经网络被馈送观测数据并被执行时,它在由概率程序指定的原始模型中执行近似推理。我们的训练目标和学习过程的目的是让训练后的神经网络被用来作为一个顺序重要性采样推理机的建议分布。我们说明了我们在混合模型和验证码求解上的方法,并显示了推理效率的显着加速。
2017-03-02 cs.AI cs.LG stat.ML
Quantifying the probable approximation error of probabilistic inference programs
Massachusetts Institute of Technology(麻省理工学院)
本文介绍了一种新的技术量化的近似误差的概率推理程序,包括基于变分和蒙特卡罗方法。其关键思想是推导出一个主观界的对称KL分歧之间的分布实现的近似推理程序和它的真正的目标分布。界限的有效性(和主观性)取决于两个辅助概率程序的准确性:(i)一个“参考”推理程序,定义了一个黄金标准的准确性和(ii)一个“元推理”程序,回答了这样一个问题:“什么样的内部随机选择原始近似推理程序可能会产生一个特定的结果?”“本文包括从线性回归,狄利克雷过程混合建模,障碍和贝叶斯网络得出的推理问题的实证结果。实验表明,该技术是强大的参考推理程序的质量,它可以检测到执行错误,是不明显的预测性能。
2016-05-31 cs.AI cs.LG stat.ML
Universal Marginaliser for Deep Amortised Inference for Probabilistic Programs
Babylon Health(巴比伦健康)
概率程序设计语言(PPL)是强大的建模工具,它允许我们对世界的知识进行形式化,并对其固有的不确定性进行推理。PPL中使用的推理方法可能由于显著的时间负担和/或存储要求而在计算上昂贵;或者当应用于大规模图形模型时,它们可能缺乏收敛性和准确性的理论保证。为此,我们提出了通用边际化(UM),摊销推理的一种新方法,在PPL。我们展示了如何结合从原始概率程序中提取的样本之前,与适当的增强方法,使我们能够训练一个神经网络,以近似任何相应的条件边际分布,与任何分离成潜在的和观察到的变量,从而摊销推理的成本。最后,我们在Pyro中的多个概率程序上对该方法进行了基准测试,这些程序具有不同的模型结构。
2019-10-16 cs.AI cs.LG stat.ML
An Introduction to Probabilistic Programming
University of Amsterdam(阿姆斯特丹大学);University College London(伦敦大学学院);Alan Turing Institute(艾伦·图灵研究所);KAIST(韩国科学技术院);University of British Columbia(不列颠哥伦比亚大学)
这本书是概率编程的研究生水平介绍。它不仅为任何希望使用概率编程系统的人提供了一个全面的背景,而且还介绍了设计和构建这些系统所需的技术。它针对的是那些对概率机器学习和编程语言有本科水平理解的人,或者理想情况下,对概率机器学习和编程语言都有理解的人。我们从基于模型的推理的讨论开始,并解释为什么条件作用是概率机器学习和人工智能领域的核心基础计算。然后,我们介绍了一阶概率编程语言(PPL),其程序对应于图形模型与一个已知的,有限的,一组随机变量。在这方面的PPL,我们介绍了基本的推理算法,并描述了它们是如何实现的。然后,我们转向高阶概率编程语言。在这种语言中的程序可以定义具有动态计算图的模型,其可以不在每次执行中实例化相同的随机变量集合。推理需要通过反复评估程序来生成样本的方法。这种语言的基础算法进行了讨论的上下文中的程序执行和推理控制器之间的接口。最后,我们考虑概率和可微规划的交集。我们首先讨论自动微分,以及如何使用它来实现基于哈密顿蒙特卡罗的高效推理方法。然后,我们讨论了基于梯度的极大似然估计在使用神经网络参数化的程序中,如何通过学习神经近似来摊销推理到程序后验,以及语言特征如何影响深度概率编程系统的设计。
2021-10-19 cs.AI cs.LG cs.PL
Maximum a Posteriori Estimation by Search in Probabilistic Programs
University of Oxford(牛津大学)
本文介绍了一种用于概率规划中最大后验概率快速估计的近似搜索算法,我们称之为贝叶斯上升蒙特卡罗(BaMC)。概率程序表示具有不同数量的相互依赖的有限、可数和连续随机变量的概率模型。BaMC是一种适用于任意随机变量和依赖关系组合的任意时间MAP搜索算法。我们比较BaMC其他MAP估计算法,并表明BaMC是更快,更强大的概率模型的范围。
2015-04-26 cs.AI stat.ML
Probabilistic Search for Structured Data via Probabilistic Programming and Nonparametric Bayes
Massachusetts Institute of Technology(麻省理工学院)
数据库分布广泛,但提取相关数据可能很困难。在没有大量领域知识的情况下,多变量搜索查询通常返回稀疏或无信息的结果。提出了一种基于概率规划和非参数贝叶斯的结构化数据搜索方法。用户使用概率语言指定查询,该语言将标准SQL数据库搜索操作符与称为预测相关性的信息理论排名功能相结合。预测相关性可以通过基于来自CrossCat的后验样本的快速稀疏矩阵算法来计算,CrossCat是用于高维、异质类型数据表的非参数贝叶斯模型。其结果是一个灵活的搜索技术,适用于广泛的一类信息检索问题,我们集成到贝叶斯数据库,概率数据分析的概率编程平台。本文展示了美国大学数据库,全球公共卫生宏观经济指标和经典汽车的应用程序。我们发现,人类评估者通常更喜欢概率搜索的结果,而不是标准基线的结果。
2017-04-04 cs.AI cs.DB cs.LG
Compiling Stan to Generative Probabilistic Languages and Extension to Deep Probabilistic Programming
INRIA Paris(法国国家信息与自动化研究所巴黎);École normale supérieure – PSL University(巴黎高等师范学院 – PSL大学);UMass Amherst(马萨诸塞大学阿默斯特分校);MIT-IBM Watson AI Lab(MIT-IBM沃森人工智能实验室);IBM Research(IBM研究院)
Stan是一种概率程序设计语言,在统计学社区中很流行,具有用于表达概率模型的高级语法。Stan在本质上不同于Church、Anglican或Pyro等生成概率程序设计语言。本文提出了一种将任意Stan模型编译成生成语言的综合编译方案,并证明了其正确性。我们使用我们的编译方案为Stanc3编译器构建两个新的后端,目标是Pyro和NumPyro。实验结果表明,NumPyro后端在26个基准测试中的几何平均值比Stan提高了2.3倍。在Pyro的基础上,我们扩展了Stan,支持显式变分推理指南和深度概率模型。这样,熟悉Stan的用户就可以访问新功能,而无需学习一门全新的语言。
2021-04-11 cs.AI cs.LG cs.PL
Bayesian causal inference via probabilistic program synthesis
University of Massachusetts(马萨诸塞大学);Massachusetts Institute of Technology(麻省理工学院)
因果推理可以形式化为贝叶斯推理,其结合了因果模型的先验分布和解释观察和干预的可能性。我们表明,它是可能的,以实现这种方法,使用一个充分表达的概率程序设计语言。先验表示使用概率程序生成的源代码在一个特定领域的语言。干预是使用概率程序,编辑这个源代码修改原始的生成过程。这种方法可以直接将来自原子干预的数据,以及转移干预,方差缩放干预和其他修改因果结构的干预。这种方法也使得使用通用推理机的概率程序推断可能的因果结构和参数的数据。这一摘要描述了一个原型,这种方法在Gen概率程序设计语言。
2019-10-30 cs.AI cs.LG
A Compilation Target for Probabilistic Programming Languages
University of Oxford(牛津大学)
通过创造性地使用标准化的操作系统功能,包括进程、分叉、互斥和共享存储器,可以用任何程序设计语言来实现诸如用于概率编程的顺序蒙特卡罗和粒子马尔可夫链蒙特卡罗的前向推理技术。利用这一点,我们已经定义,开发和测试的概率程序设计语言中间表示语言,我们称之为概率C,它本身可以被编译成机器码的标准编译器和链接到操作系统库产生一个有效的,可扩展的,便携式的概率编程编译目标。这为优化概率编程系统开辟了一条新的硬件和系统研究路径。
2014-07-10 cs.AI cs.PL stat.ML
Stochastically Differentiable Probabilistic Programs
University of Oxford(牛津大学)
具有混合支持(连续和离散潜随机变量)的概率规划通常出现在许多概率规划系统(PPS)中。然而,离散随机变量的存在禁止了许多基本的基于梯度的推理引擎,这使得在这样的模型上的推理过程特别具有挑战性。现有的PPS要么需要用户手动边缘化的离散变量,或通过运行独立的离散和连续变量的推理来执行合成推理。前者在大多数情况下是不可行的,而后者有一些根本性的缺点。我们提出了一种新的方法来运行推理的有效性和鲁棒性,在这样的程序使用随机梯度马尔可夫链蒙特卡罗算法家族。我们比较我们的随机基于梯度的推理算法对传统的基线在几个重要的情况下,概率程序与混合支持,并证明它优于现有的构成推理基线和工程几乎以及推理边缘化版本的程序,但较少的编程工作量和较低的计算成本。
2020-03-05 cs.LG stat.ML
Coarse-to-Fine Sequential Monte Carlo for Probabilistic Programs
Stanford University(斯坦福大学)
概率推理的许多实用技术需要一系列分布,这些分布在易处理的分布和感兴趣的难处理的分布之间进行插值。通常,使用的序列是简单的,例如,基于分布之间的几何平均值。当模型表示为概率程序时,模型本身是高度结构化的对象,可以用于导出对域结构更敏感的退火序列。我们提出了一种算法,用于将概率程序转换为具有与原始程序相同的边缘分布的粗到细程序,但生成的数据在增加的细节水平,从粗到细。我们将此算法应用于伊辛模型,其深度从视差变化,和阶乘隐马尔可夫模型。我们初步的证据表明,使用粗到细的模型可以使现有的通用推理算法更有效。
2015-09-09 cs.AI stat.ML
Transforming Probabilistic Programs for Model Checking
Columbia University(哥伦比亚大学);Utrecht University(乌得勒支大学)
概率编程非常适合可靠和透明的数据科学,因为它允许用户用高级语言指定他们的模型,而不必担心如何拟合模型的复杂性。概率程序的静态分析通过自动化耗时且易出错的任务,为实现高级风格的编程提供了更进一步的机会。我们将静态分析应用于概率程序,以自动化两个关键模型检验方法的大部分:先验预测检验和基于仿真的校准。我们的方法将指定密度函数的概率程序转换为高效的前向采样形式。为了实现这种转换,我们提取一个因素图从概率程序使用静态分析,生成一组建议有向无环图使用SAT求解器,选择一个图形,这将产生可证明正确的采样代码,然后生成一个或多个采样程序。我们允许最少的用户交互,以扩大应用范围,超出单独使用静态分析的可能范围。我们提出了一个实现针对流行的斯坦概率程序设计语言,自动化大部分的强大的贝叶斯工作流程的概率编程用户广泛的社区。
2020-08-21 cs.AI cs.LG cs.PL
MultiVerse: Causal Reasoning using Importance Sampling in Probabilistic Programming
Babylon Health(巴比伦健康);University of Oxford(牛津大学);University College London(伦敦大学学院)
我们详细说明使用重要性采样的因果推理,特别是反事实推理。我们展示了如何在概率编程中本地实现这一点。通过考虑反事实查询的结构,可以显著优化推理过程。我们还考虑设计选择,以实现进一步优化。我们介绍了MultiVerse,一个概率编程的原型引擎近似因果推理。我们提供了实验结果,并与Pyro,现有的概率编程框架与一些因果推理工具进行比较。
2020-01-28 cs.AI cs.LG cs.PL
Particle Gibbs with Ancestor Sampling for Probabilistic Programs
Columbia University(哥伦比亚大学);University of Oxford(牛津大学)
粒子马尔可夫链蒙特卡罗技术是目前最先进的概率程序推理方法之一。这些技术的一个缺点是,它们依赖于重要性恢复,这导致退化的粒子轨迹和低有效的样本量的变量在程序中早期采样。我们在这里开发了一种形式主义,以适应祖先rescue,一种技术,减轻粒子退化,概率编程设置。我们提出的实证结果表明,非平凡的性能增益。
2015-02-09 cs.AI cs.PL stat.ML
Pyro: Deep Universal Probabilistic Programming
Uber AI Labs(优步人工智能实验室);Uber Technologies, Inc.(优步科技公司);Stanford University(斯坦福大学)
Pyro是一种基于Python的概率程序设计语言,作为在AI研究中开发高级概率模型的平台。为了扩展到大型数据集和高维模型,Pyro使用基于PyTorch(一种现代GPU加速的深度学习框架)的随机变分推理算法和概率分布。为了适应复杂或特定于模型的算法行为,Pyro利用Poutine,这是一个用于修改概率程序行为的可组合构建块库。
2018-10-18 cs.LG cs.PL stat.ML
Designing Perceptual Puzzles by Differentiating Probabilistic Programs
MIT(麻省理工学院);UCSD(加州大学圣地亚哥分校)
我们通过为人类感知的原则模型寻找“对抗性例子”来设计新的视觉错觉-特别是概率模型,它将视觉视为贝叶斯推理。为了有效地执行此搜索,我们设计了一个可微的概率程序设计语言,其API暴露MCMC推理作为一个一流的可微功能。我们展示了我们的方法,自动创建人类视觉的三个功能的错觉:颜色恒定性,大小恒定性,和人脸感知。
2022-04-26 cs.AI cs.GR cs.LG
Bayesian Synthesis of Probabilistic Programs for Automatic Data Modeling
Massachusetts Institute of Technology(麻省理工学院)
我们提出了新的技术,自动构建数据分析,解释和预测的概率程序。这些技术与概率领域特定的数据建模语言一起工作,这些语言捕获广泛类别的数据生成过程的关键属性,使用贝叶斯推理在给定观察数据的情况下在这些建模语言中合成概率程序。我们提供了一个精确的配方贝叶斯合成自动数据建模,确定了充分的条件所产生的合成过程是健全的。我们还推导出一般类的合成算法指定的概率上下文无关文法的特定领域的语言,并建立健全的方法,这些语言。我们应用的技术,自动合成的概率程序的时间序列数据和多元表格数据。我们展示了如何分析合成程序的结构,以计算感兴趣的关键定性属性,潜在的数据生成过程表现出这些属性的概率。其次,我们翻译概率程序在特定领域的语言概率程序的风险投资,一个通用的概率编程系统。然后执行翻译后的Venture程序,以获得新的时间序列数据和新的多变量数据记录的预测。实验结果表明,我们的技术可以准确地推断多个真实世界的数据集的定性结构,并在预测和预测新数据的标准数据分析方法。
2019-07-14 cs.AI cs.LG cs.PL
Lazy Factored Inference for Functional Probabilistic Programming
Charles River Analytics(查尔斯河分析公司)
概率编程提供了使用程序设计语言构造来表示和推理复杂概率模型的方法。即使是简单的概率程序也可以产生具有无穷多个变量的模型。因式推理算法被广泛用于概率图模型,但不能应用于这些程序,因为所有的变量和因素都必须枚举。在本文中,我们提出了一个新的推理框架,懒惰因式推理(LFI),使因式算法被用于无限多个变量的模型。LFI将模型扩展到有界深度,并使用程序的结构来精确量化模型未扩展部分的影响,从而为查询概率生成上下界。
2015-09-11 cs.AI
Deep Probabilistic Programming Languages: A Qualitative Study
IBM Research(IBM研究公司/IBM研究(注:IBM Research通常译为IBM研究,属于企业研究机构,按要求提取到公司级别))
深度概率程序设计语言试图将深度学习的优势与概率程序设计语言的优势结合起来。如果成功,这将是机器学习和程序设计语言的一大步。不幸的是,到目前为止,这种新的语言很难使用和理解。本文通过解释深度概率程序设计语言直接解决了这个问题,并通过描述其当前的优势和劣势间接解决了这个问题。
2018-04-17 cs.AI cs.PL
Data-driven Sequential Monte Carlo in Probabilistic Programming
University of Oxford(牛津大学)
现有的概率规划系统中的大多数马尔可夫链蒙特卡罗(MCMC)和顺序蒙特卡罗(SMC)算法仅使用模型先验作为建议分布。在这项工作中,我们描述了一种训练判别模型,即一个神经网络的方法,以近似的最佳建议,通过使用后验估计从以前运行的推理。我们展示了一个例子,结合了数据驱动的建议,用于在英国圣公会概率编程系统的非参数模型。我们的研究结果表明,数据驱动的建议可以显着提高推理性能,因此需要相当少的粒子来执行良好的后验估计。
2016-05-16 cs.AI stat.AP stat.ML
A Step from Probabilistic Programming to Cognitive Architectures
ITMO University(ITMO大学);St. Petersburg State University(圣彼得堡国立大学)
概率编程被认为是一个框架,在这个框架中,认知体系结构的基本组成部分可以以统一和优雅的方式表示。同时指出了采用认知体系结构的某些组成部分来扩展概率程序设计语言能力的必要性。特别是,隐式规范的生成模型,通过声明的概念和它们之间的联系,并简要讨论了有用的声明性知识,实现高效的推理。
2016-05-04 cs.AI
Applications of Probabilistic Programming (Master's thesis, 2015)
Wolfson College(沃尔森学院);University of Oxford(牛津大学)
本文介绍了两个应用程序的概率规划的工作:概率程序代码给定的规格,特别是一维采样器的程序代码的学习;和便利的顺序蒙特卡洛推理的帮助下,数据驱动的建议。后者提出了一个线性高斯模型和一个非参数依赖的Dirichlet过程混合物的目标模型的目标识别和跟踪的实验结果。在第1章中,我们简要介绍了概率规划。在第二章中,我们提出了一种以概率程序的形式自动发现采样器的方法。我们制定了一个贝叶斯方法来解决这个问题,通过指定一个基于语法的先验概率程序代码。我们使用近似贝叶斯计算方法来学习程序,其执行生成的样本在统计上与观察到的数据或感兴趣的分布的分析特征相匹配。在我们的实验中,我们利用不同的概率编程系统来执行马尔可夫链蒙特卡罗抽样的空间的程序。实验结果表明,使用所提出的方法,我们可以学习近似,甚至一些精确的采样器。最后,我们表明,我们的结果是有竞争力的遗传编程方法。在第3章中,我们描述了一种使用数据驱动的建议来促进概率规划中的顺序蒙特卡罗推理的方法。特别是,我们开发了一个基于距离的建议的非参数依赖的Dirichlet过程混合物的对象模型。我们实现这种方法的概率编程系统英国圣公会,并表明,该模型的数据驱动的建议提供了显着的性能改善。我们还探讨了使用神经网络来改善数据驱动的建议的可能性。
2020-05-19 cs.AI
flip-hoisting: Exploiting Repeated Parameters in Discrete Probabilistic Programs
MIT(麻省理工学院);UCLA(加州大学洛杉矶分校);Northeastern University(东北大学)
当今的许多概率程序设计语言(PPL)具有脆弱的推理性能:底层推理算法的性能对编写概率程序的精确方式非常敏感。在传统程序设计语言中解决这一挑战的标准方法是通过程序优化,其寻求减轻程序员编写低级性能代码的负担,使他们能够在更高级别的抽象上工作。与传统程序相比,可供PPL选择的适用程序优化工具库是稀缺的;今天的PPL很少提供重要形式的自动程序优化。在这项工作中,我们开发了一个新的家庭的程序优化特定的离散值知识编译基于PPL。我们确定了这些PPL所特有的程序结构的一种特殊形式,它会切实影响这些程序中的精确推理性能:冗余随机变量-具有重复参数和不一致路径条件的变量。我们开发了一种新的程序分析和相关的优化称为翻转提升,识别这些冗余,并优化成一个单一的随机变量。我们发现,翻转提升产生推理加速高达60%的概率程序,如贝叶斯网络和概率验证的应用。
2023-02-21 cs.AI
Venture: a higher-order probabilistic programming platform with programmable inference
MIT(麻省理工学院)
我们描述风险,概率编程的交互式虚拟机,其目的是充分表达,可扩展,高效的通用用途。像Church一样,Venture中的概率模型和推理问题也是通过一种图灵完备的高阶概率语言来描述的。与Church不同,Venture还提供了一种组合语言,用于基于可扩展的精确和近似技术构建的自定义推理策略。我们还描述了四个关键方面的风险投资的实施,建立在概率图形模型的想法。首先,我们描述了随机过程接口(SPI),指定和封装原始随机变量。SPI支持自定义控制流、高阶概率程序、部分可交换序列和“无可能性”随机模拟器。它还支持外部模型,这些模型对隐藏在Venture中的潜在变量进行推断。其次,我们描述了概率执行轨迹(PETS),这代表了执行历史的风险投资计划。PET捕获条件依赖、存在依赖和可交换耦合。第三,我们描述了分区的执行历史称为脚手架的因素,全球推理问题成连贯的子问题。最后,我们描述了一个家庭的随机再生算法,有效地修改PET片段内的支架。随机再生线性运行时缩放的情况下,许多以前的方法缩放二次。我们将展示如何使用随机再生和SPI来实现通用的推理策略,如大都会黑斯廷斯,吉布斯采样,并阻止粒子马尔可夫链蒙特卡罗和平均场变分推理技术的基础上的建议。
2014-04-01 cs.AI cs.PL stat.CO
Paraconsistent Foundations for Probabilistic Reasoning, Programming and Concept Formation
有人认为,4值次协调真值(这里称为“p位”)可以作为高度AI相关形式的概率逻辑和概率编程和概念形成的概念,数学和实践基础。首先,它表明,适当的平均跨情况和重整化的4值p位操作根据可构造的对偶(CD)逻辑产生PLN(概率逻辑网络)的强度和置信度的真值。然后,Curry-Howard对应的变化被用来映射这些次协调和概率逻辑到概率类型适合于使用依赖类型的程序设计语言。将Zach Weber的次协调分析扩展为概念边界的次协调/概率/模糊分析,并基于次协调概率分布的相对熵定义了模糊属性-价值度,给出了一种基于形式概念分析的次协调概念形成方法.通过参考OpenCog AGI框架中概率推理和编程以及概念形成的实现,这些一般性观点得以充实,该框架以公共知识元数据的协作多算法更新为中心。
2021-01-14 cs.AI
Probabilistic Planning by Probabilistic Programming
University of Edinburgh(爱丁堡大学);Alan Turing Institute(艾伦·图灵研究所)
自动规划是人工智能的一个重要研究课题,有着悠久而杰出的历史。经典范式假设一个由一组事实组成的独特的初始状态,并定义为一组以某种方式改变该状态的行为。然而,在许多现实世界的环境中,规划要复杂得多:智能体的知识几乎从来都不是简单的一组真实的事实,智能体打算执行的行动从来都不是按照它们应该的方式运行的。因此,概率规划试图将随机模型直接纳入规划过程。在这篇文章中,我们通过概率规划的镜头简要报告了概率规划:一种旨在简化结构化概率分布规范的编程范式。特别是,我们提供了一个概述的功能,两个系统,HYPE和ALLEGRO,强调不同的优势的概率规划,特别是有用的复杂的建模问题提出的概率规划。除此之外,与这些系统,一个可以实例化规划问题的增长和收缩的状态空间,离散和连续的概率分布,以及非唯一的先验分布在一阶设置。
2018-01-25 cs.AI
A Probabilistic Programming Idiom for Active Knowledge Search
Aalborg University(奥尔堡大学)
在本文中,我们推导并实现了一个概率编程习惯的问题,获取新的知识的环境。该习惯用法是利用现代概率程序设计语言实现的。我们通过实现主动映射和机器人探索的特定问题的算法来证明这种习惯用法的实用性。最后,我们通过广泛的模拟研究,利用HouseExpo数据集的实施评估的功能。
2022-02-19 cs.AI cs.RO
Compositional Stochastic Modeling and Probabilistic Programming
概率规划是一种通过从离散时间动态切换到连续时间动态来进行随机建模的组合方法。在连续时间中,一个算子代数语义是可用的,其中并行进行的进程(可能相互作用)具有求和的时间演化算子。在此基础上,可以系统地导出用于模拟、推理和模型简化的算法。这些有用的结果可能在计算科学、机器学习及其他领域产生深远的影响。混合成分随机建模/概率编程方法也是可能的。
2012-12-03 cs.AI cs.PL
Spreadsheet Probabilistic Programming
Invrea(Invrea公司)
电子表格工作簿内容是简单的程序。正因为如此,概率编程技术可以用于执行电子表格计算的贝叶斯反演。更重要的是,电子表格应用程序(如Microsoft Excel)中的现有执行引擎可以仅使用内置功能来完成此任务。我们证明了这一点,通过开发一个本地的Excel实现的粒子马尔可夫链蒙特卡罗变量和黑盒变分推理的电子表格概率编程。由此产生的引擎在电子表格计算上执行概率一致的推理,特别是包括包含用户定义的黑盒函数的电子表格。选择集成我们在本文中描述的功能的电子表格引擎将使其用户能够轻松开发概率模型,并通过简单的用户界面机制包含实际值来随着时间的推移维护它们。对于电子表格最终用户来说,这意味着可以访问高效且概率一致的概率建模和推理,用于不确定性下的各种决策。
2016-06-14 cs.AI cs.PL
Slice Sampling for Probabilistic Programming
University of Cambridge(剑桥大学)
我们介绍了第一个,通用的,切片采样推理机的概率程序。该引擎作为StocPy的一部分发布,StocPy是一种新的图灵完备概率程序设计语言,可作为Python库使用。我们提出了一个transdimensional概括切片采样,这是必要的推理机工作的痕迹与不同数量的随机变量。我们表明,StocPy相比其他PPL的灵活性和可用性方面,切片采样可以优于以前介绍的推理方法。我们的实验包括逻辑回归,HMM和贝叶斯神经网络。
2015-01-20 cs.AI cs.PL
Decision-Making with Complex Data Structures using Probabilistic Programming
Charles River Analytics(查尔斯河分析公司)
现有的决策理论推理框架,如决策网络,使用简单的数据结构和过程。然而,决策通常是基于复杂的数据结构,如社交网络和蛋白质序列,以及涉及这些结构的丰富过程。我们提出了一个框架,用于表示决策问题与复杂的数据结构使用概率编程,允许概率模型创建与程序设计语言结构,如数据结构和控制流。我们提供了一种方法来使用任意的数据类型,从用户的努力最小,和一个近似的决策算法是有效的,即使当信息空间非常大或无限的。实验结果表明,我们的算法工作在非常大的信息空间的问题。
2014-07-11 cs.AI
Bachelor's thesis on generative probabilistic programming (in Russian language, June 2014)
这篇用俄语撰写的学士论文致力于机器学习和人工智能领域的一个相对较新的方向,即概率编程。本文简要介绍了已经存在的概率程序设计语言:Church,Venture和Anglican。它还描述了第一次实验的结果,自动归纳的概率程序。该论文于2014年6月提交,部分符合俄罗斯克拉斯诺亚尔斯克西伯利亚联邦大学数学和计算机科学系数学理学学士学位的要求。本文中所描述的工作已经在2012-2014年由作者的同事和他自己在麻省理工学院和牛津大学进行。
2016-01-26 cs.AI cs.PL
Hamiltonian Monte Carlo for Probabilistic Programs with Discontinuities
哈密顿蒙特卡罗(HMC)是最流行的“一阶可微”概率编程语言(PPL)中使用的占主导地位的统计推断算法。然而,当目标分布相对于一个或多个潜在变量不可微时,HMC使用导数信息的事实导致复杂化。在本文中,我们将展示如何使用扩展HMC进行推理的概率程序,包含不连续性。要做到这一点,我们设计了一个简单的一阶概率编程语言(SPPL),其中包含一组足够的语言限制以及编译方案。这使我们能够保持统计和语法解释的if-else语句的概率程序,在一阶PPL的范围内。我们还提供了一个相应的数学形式主义,确保在这样的语言表示的任何联合密度有一个适当的低措施的不连续性。
2019-01-02 cs.PL stat.CO stat.ML
Towards representation agnostic probabilistic programming
Institute for Visual and Analytic Computing(视觉与分析计算研究所)
本文提出了一种因素抽象方法,实现表示无关的概率编程,允许在统一框架中混合不同表示进行复杂模型推断。
2025-12-25 cs.AI cs.PL
From Probabilistic Programming to Complexity-based Programming
University of Amsterdam(阿姆斯特丹大学);Télécom Paris(巴黎电信学院);Paris-Saclay University(巴黎萨克雷大学)
本文提出名为CompLog的计算框架,基于Simplicity Theory和Kolmogorov复杂度计算替代概率推理,支持计算事后与事前意外性度量,并展示了生成描述及处理析取与否定等应用。
2023-09-11 cs.AI cs.CL
A meta-probabilistic-programming language for bisimulation of probabilistic and non-well-founded type systems
Yale University(耶鲁大学);SingularityNET(奇点网)
我们引入了一个正式的元语言的概率编程,能够表达程序和类型系统中,他们被嵌入。我们的动机是希望AGI不仅学习相关知识(程序/证明),而且学习适当的推理方式(逻辑/类型系统)。我们利用立方类型论和依赖类型元图的框架来形式化我们的方法。在这样做时,我们表明,元语言中的特定结构可以通过互模拟(意味着路径等价)与它们对应的类型系统相关。这使得我们的方法提供了一种方便的方法来派生合成指称语义的各种类型系统。特别是,我们推导出纯型系统(PTS)和概率依赖型系统(PDTS)的互模拟。我们进一步讨论了PTS的关系,非良基集理论,并证明了我们的方法的可行性与实现的互模拟证明在一个守护立方类型论类型检查。
2022-08-16 cs.AI cs.FL cs.LO
RankPL: A Qualitative Probabilistic Programming Language
University of Luxembourg(卢森堡大学)
在本文中,我们介绍RankPL,建模语言,可以被认为是一个定性的概率程序设计语言的语义的基础上Spohn的排名理论的变体。一般来说,RankPL可以用来表示和推理那些表现出不确定性的过程,这些不确定性可以通过区分“正常”和“令人惊讶”的事件来表达。RankPL允许(迭代)修改替代程序状态的排名,并支持各种类型的推理,包括溯因推理和因果推理。我们提出的语言,它的指称语义,和一些实际的例子。我们还讨论了可供下载的RankPL的实现。
2017-05-19 cs.AI cs.PL
Swift: Compiled Inference for Probabilistic Programming Languages
UC Berkeley(加州大学伯克利分校);University of Washington(华盛顿大学)
概率程序定义了其语义结构上的概率度量。概率程序设计语言(PPL)的一个共同目标是使用通用推理引擎,在给定观察到的证据的情况下,计算任意模型和查询的后验概率。大多数PPL推理引擎-即使是编译的-会产生显著的运行时解释开销,特别是对于偶然和开放宇宙模型。本文介绍了一个用于BLOG PPL的编译器Swift。Swift生成的代码结合了优化,消除了解释开销,有效地维护了动态依赖关系,并处理了不同大小的可能世界的存储管理。Swift与其他PPL引擎在各种推理问题上的比较实验表明,加速比从12倍到326倍不等。
2016-06-30 cs.AI cs.PL
Using probabilistic programs as proposals
Probabilistic Computing Project(概率计算项目);Massachusetts Institute of Technology(麻省理工学院)
蒙特卡罗推理具有渐近保证,但在使用通用建议时可能会很慢。依赖于用户关于后验分布的知识的手工建议可能是有效的,但难以推导和实现。本文提出让用户以建议程序的形式表达他们的后验知识,建议程序是用概率程序设计语言编写的采样器。编写好的提案程序的一个策略是将特定领域的启发式算法与神经网络模型相结合。算法识别高概率区域,神经网络对算法输出周围的后验不确定性进行建模。建议程序可以用作重要性采样和Metropolis-Hastings采样器中的建议分布,而不会牺牲渐近一致性,并且可以使用推断编译进行离线优化。在基于采样的概率编程运行时中,可以轻松实现对优化和使用建议程序的支持。本文说明了所提出的技术与建议方案,结合RANSAC和神经网络,以加速贝叶斯线性回归模型与离群值的推理。
2018-01-13 cs.AI stat.CO
Compositional Semantics for Probabilistic Programs with Exact Conditioning
University of Oxford(牛津大学)
我们定义了一个概率程序设计语言的高斯随机变量与一流的精确条件构造。我们给这种语言的操作,指称和等式语义,建立方便的属性,如交换条件。连续随机变量相等的条件是非平凡的,因为精确的观察可能有概率为零;这是波莱尔悖论。使用条件概率的分类公式,我们表明,我们的语言的良好性能是不特定的高斯,但可以从普遍的属性,从而推广到更广泛的设置。我们定义的Cond建设,它内在的条件作为一个态射,提供一般的组合语义的概率编程与精确的条件。
2021-01-27 cs.AI cs.LO cs.PL
Probabilistic Programming in Python using PyMC
概率编程(PP)允许在代码中灵活地指定贝叶斯统计模型。PyMC 3是一个新的开源PP框架,具有直观、可读且功能强大的语法,接近统计学家用来描述模型的自然语法。它具有下一代马尔可夫链蒙特卡罗(MCMC)采样算法,例如No-U-Turn Sampler(NUTS; Hoffman,2014),这是哈密顿蒙特卡罗(HMC; Duane,1987)的自调整变体。Python的Probably编程具有许多优点,包括多平台兼容性,表达性强但清晰可读的语法,易于与其他科学库集成,以及通过C,C++,Fortran或Cython的可扩展性。这些特性使得编写和使用贝叶斯分析所需的自定义统计分布、采样器和转换函数相对简单。
2015-07-29 stat.CO
Black-Box Policy Search with Probabilistic Programs
University of Oxford(牛津大学)
在这项工作中,我们将探讨如何概率程序可以用来表示顺序决策问题的政策。在这个公式中,概率程序是一个黑盒随机模拟器的问题域和代理。我们将经典的政策梯度技术,最近推出的黑盒变分方法,推广到概率程序推理。我们目前的案例研究,在加拿大旅行者的问题,岩石样本,和最佳诊断的启发猜猜谁的基准。每项研究都说明了程序如何使用适度数量的参数有效地表示策略。
2016-08-04 cs.AI stat.ML
Probabilistic Neural Programs
University of Notre Dame(圣母大学);Allen Institute for Artificial Intelligence(艾伦人工智能研究所)
我们提出了概率神经程序,程序归纳的框架,允许灵活的规范的计算模型和推理算法,同时使使用深度神经网络。概率神经程序将用于指定神经网络的计算图与用于加权非确定性选择的运算符相结合。因此,程序既描述了决策的集合,也描述了用于做出每个决策的神经网络架构。我们评估我们的方法在一个具有挑战性的图问答任务,概率神经程序正确执行近两倍的程序作为基线模型。
2016-12-02 cs.AI cs.LG cs.NE
Probabilistic Program Abstractions
University of California, Los Angeles(加州大学洛杉矶分校)
抽象是推理复杂系统的基本工具。程序抽象在分析确定性程序中发挥了重要作用。程序抽象的核心是具体程序和抽象程序之间的关系,具体程序很难分析,抽象程序更容易处理。然而,程序抽象通常不是概率性的。通过明确量化非确定性选择,我们将非确定性程序抽象概括为概率程序抽象。我们的框架升级的关键定义和属性的抽象概率的背景下。我们还讨论了初步的想法进行推理的概率抽象和一般的概率程序。
2017-07-14 cs.AI
Towards Probabilistic Inductive Logic Programming with Neurosymbolic Inference and Relaxation
TNO(荷兰应用科学研究组织)
针对传统ILP无法处理概率背景知识的问题,提出Propper框架,结合神经符号推理、连续假设选择标准(BCE)和约束松弛(NoisyCombo),能从极少示例中学习并优于现有模型。
2024-09-20 cs.AI cs.LG
Output-Sensitive Adaptive Metropolis-Hastings for Probabilistic Programs
University of Oxford(牛津大学)
我们介绍了一个自适应输出敏感的Metropolis-Hastings算法的概率模型表示为程序,自适应轻量级Metropolis-Hastings(AdLMH)。该算法扩展了轻量级大都市黑斯廷斯(LMH),通过调整提出修改随机变量的概率,以提高程序输出的收敛性。我们表明,AdLMH收敛到正确的平衡分布和比较收敛的AdLMH的LMH的几个测试问题,突出不同方面的适应计划。我们观察到一致的改进收敛的测试问题。
2015-05-05 cs.AI stat.ML
Inducing Probabilistic Programs by Bayesian Program Merging
Stanford University(斯坦福大学);MIT(麻省理工学院)
本报告概述了一种从数据中学习生成模型的方法。我们将模型表示为概率程序,这使我们能够在示例中捕获抽象模式。通过选择我们的程序语言作为例子的代数数据类型的扩展,我们可以从生成所有且仅生成例子的程序开始。然后,我们逐步引入更大的抽象,从而进行概括,以提高给定程序的示例的后验概率。以前的方法模型合并和程序归纳的动机,我们寻找这样的解释性抽象程序转换。我们考虑两种类型的转换:抽象将程序中的公共子表达式合并为新函数(一种反统一形式)。去论证通过减少参数的数量来简化函数。我们证明,这种方法发现嵌套列表,包括参数化的子函数和随机递归域中的关键模式。
2011-10-25 cs.AI cs.LG
Beyond the Grounding Bottleneck: Datalog Techniques for Inference in Probabilistic Logic Programs (Technical Report)
Cardiff University(卡迪夫大学);Samsung AI Research(三星人工智能研究院)
概率逻辑编程中的最先进的推理方法通常通过相对于感兴趣的查询计算相关的基础程序开始,然后使用该程序进行使用知识编译和加权模型计数的概率推理。我们提出了一种替代方法,使用高效的数据库技术集成知识编译与正向推理与非地面程序。这有效地消除了接地瓶颈,到目前为止,已经禁止概率逻辑编程的查询应答场景中的应用程序在知识图谱,同时还提供了快速近似的经典基准在该领域。
2019-11-18 cs.AI
Probabilistic Logic Programming under Inheritance with Overriding
我们提出了概率逻辑编程下的继承覆盖。这种方法是基于新的概念蕴涵推理的条件约束,这是从经典的概念逻辑蕴涵通过添加继承与覆盖的原则。这是通过使用最近的方法概率默认推理与条件约束。我们分析了新蕴涵关系的语义特性。我们还提出了概率逻辑编程的算法继承覆盖,程序转换,以提高效率。
2013-01-10 cs.AI
Rethinking Variational Inference for Probabilistic Programs with Stochastic Support
University of Oxford(牛津大学);Nanyang Technological University(南洋理工大学)
本文提出支撑分解变分推断(SDVI),通过将具有随机支撑的概率程序分解为静态支撑子程序并分别构建子引导,以改进变分族构建并提升推断性能。
2023-11-01 cs.AI cs.LG cs.PL
"Would life be more interesting if I were in AI?" Answering Counterfactuals based on Probabilistic Inductive Logic Programming
Ludwig-Maximilians-Universität München(慕尼黑大学)
本文针对概率逻辑程序在反事实推理中的不足,提出一种语言片段,可从诱导分布重构程序,从而学习支持反事实查询的模型。
2023-08-30 cs.AI cs.LG cs.LO
Inference and learning in probabilistic logic programs using weighted Boolean formulas
KU Leuven(鲁汶大学)
概率逻辑程序是其中一些事实用概率注释的逻辑程序。本文研究了如何经典的推理和学习任务,从图形模型社区可以处理概率逻辑程序。概率逻辑程序以前没有真正解决过几个这样的任务,如计算给定证据的边缘和从(部分)解释中学习。本文的第一个贡献是为各种推理任务提供了一套有效的算法。它基于程序和查询以及证据到加权布尔公式的转换。这使我们能够将推理任务减少到经过充分研究的任务,例如加权模型计数,可以使用图形模型和知识编译文献中已知的最先进的方法来解决。第二个贡献是一个算法的参数估计的学习从解释设置。该算法采用期望最大化,并建立在顶部开发的推理算法。所提出的方法进行了实验评估。结果表明,推理算法提高了概率逻辑程序设计的最新水平,并且确实可以从解释中学习概率逻辑程序的参数。
2013-04-25 cs.AI cs.LG cs.LO
Lazy Explanation-Based Approximation for Probabilistic Logic Programming
我们介绍了一个懒惰的方法,基于推理的概率逻辑程序的近似。在搜索解释时,它只使用程序中最重要的部分。其结果是一个快速和随时近似推理算法,返回硬下限和上限的确切概率。我们的实验表明,这种方法优于国家的最先进的近似推理。
2015-07-10 cs.AI