Multi-Language Probabilistic Programming
本文提出MultiPPL,一种概率多语言,实现两种概率编程语言的互操作,结合精确离散推理与近似重要性采样,支持异构概率程序的推理,并证明其可靠性。
2025-02-26 cs.PL
Correctness of Sequential Monte Carlo Inference for Probabilistic Programming Languages
该研究针对概率编程语言中序贯蒙特卡罗(SMC)推断缺乏操作语义下正确性证明的问题,扩展PPL lambda演算加入显式重采样项,证明重采样位置不影响通用SMC推断的正确性,并形式化自举粒子滤波器,为SMC算法在PPL中的应用提供理论支撑。
2023-05-03 cs.PL
Conditioning in Probabilistic Programming
我们调查的语义复杂性的条件,概率规划的一个主要特点。我们提供了一个最弱的(自由)前置条件(w(l)p)的基本概率程序设计语言pGCL扩展条件的语义。我们证明了定量最弱(自由)的先决条件与条件(自由)期望回报的马尔可夫链,并表明语义条件是一个真正的保守扩展。我们提出了两个程序转换,完全消除任何程序的条件,并证明其正确性使用的w(l)p-语义。最后,我们展示了如何的w(l)p-语义可以用来确定条件概率的参数匿名协议,并表明,一个归纳的w(l)p-语义的条件在非确定性的概率程序不存在。
2015-04-01 cs.PL
CoreDPPL: Towards a Sound Composition of Differentiation, ODE Solving, and Probabilistic Programming
本文提出 CoreDPPL,为融合概率编程、一等微分与 ODE 的高阶 DPPL 核心建立类型化形式语义,并在 Agda 中机械化证明其可靠性。
2025-03-18 cs.PL
Exact Recursive Probabilistic Programming
对递归数据的递归调用对于生成概率分布是有用的,并且概率编程允许以模块化和直观的方式来表达对这些分布的计算。精确推理也是有用的,但不幸的是,现有的概率程序设计语言不对递归数据上的递归调用执行精确推理,迫使程序员手动编写许多应用程序。我们介绍了一种概率语言,其中各种各样的递归可以自然地表达,并进行准确的推理。例如,概率下推自动机及其推广易于表达,并且可以自动导出多项式时间解析算法。我们使用与去功能化和再功能化相关的程序转换来消除递归数据类型。这些变换由线性类型系统保证是正确的,并且如果存在变换的成功选择,则保证由贪心算法找到。
2023-03-27 cs.PL
Reactive Graphs for Efficient Markov Chain Monte Carlo Inference in Probabilistic Programming Languages
KTH Royal Institute of Technology(瑞典皇家理工学院);Swedish Museum of Natural History(瑞典自然历史博物馆)
提出一种自动将概率程序转换为动态反应图的方法,显式表示数据依赖,使得MCMC提议仅重新计算依赖已重绘随机变量的部分,从而提升推断效率。
2026-06-29 cs.PL
Real-Time Probabilistic Programming
本文提出实时概率编程语言概念并实现ProbTime,结合概率编程与实时原语,在汽车测试平台上验证其可用性,并提出公平性引导方法在可调度性约束下自动优化系统精度。
2024-07-08 cs.PL
Reactive Probabilistic Programming
同步建模是程序设计语言(如Lustre、Esterel或Scade)的核心,通常用于实现安全关键控制软件,例如,飞机的电传操纵和发动机控制。然而,到目前为止,这些语言对建模不确定性(软件环境或行为的概率方面)的现代支持有限,尽管建模不确定性是设计控制系统时的主要活动。在本文中,我们提出了第一个同步概率程序设计语言ProbZelus。ProbZelus保守地提供了编写控制软件的同步语言的设施,具有概率结构来建模不确定性并执行循环中的推理。我们提出的语言的设计和实现。我们提出了概率流函数的测度论语义和一个简单的类型纪律来分离确定性和概率表达式。我们展示了一个语义保持编译成一个一阶函数语言,适合于一个简单的演示推理算法的流模型。我们还重新设计了延迟采样推理算法,以提供高效的流式推理。结合对几个反应式应用程序的评估,我们的结果表明,ProbZelus可以设计反应式概率应用程序和高效的有界内存推理。
2020-04-09 cs.PL
Paradoxes of Probabilistic Programming
概率论程序设计语言允许程序员将表示统计和机器学习模型的条件概率分布写为使用观察语句的程序。这些程序通过在每个观察语句处累积似然性来运行,并使用似然性来引导随机选择并使用诸如重要性采样或MCMC之类的推理算法来权衡结果。我们认为,天真的似然积累没有得到理想的语义,并导致悖论时,观察语句是用来测量零事件的条件,特别是当观察语句有条件地执行随机数据。我们发现,如果我们明确地将零测量事件建模为正测量事件的极限,则悖论消失,并且我们可以通过累积无穷小概率而不是概率密度来执行这些类型的概率程序。我们的扩展改进了概率程序设计语言作为一个可执行符号的概率分布,使其更好的行为和更有表现力,通过允许程序员明确的限制是打算条件时,测量零的事件。
2021-01-22 cs.PL
Automatic Alignment of Sequential Monte Carlo Inference in Higher-Order Probabilistic Programs
概率编程是一种用于表达灵活的概率模型的编程范式。概率程序设计语言的实现采用各种推理算法,其中通常使用顺序蒙特卡罗方法。使用顺序蒙特卡罗推断的当前最先进的实现的问题是程序同步点的对齐。提出了一种基于0-CFA算法的高阶概率程序自动对齐的静态分析方法。我们评估了系统发育模型上的自动比对,显示出运行时间的显着减少和准确性的增加。
2018-12-18 cs.PL
Semi-Symbolic Inference for Efficient Streaming Probabilistic Programming
在流媒体环境中,使用Rao-Blackwellized粒子滤波器(RBPF)通常可以进行有效的推理,RBPF在可能的情况下可以精确地解决推理问题,并在必要时返回采样近似。虽然RBPF可以手动实现以提供有效的推理,但流式概率编程的目标是在给定输入概率程序的情况下自动生成这种有效的推理实现。在这项工作中,我们提出了半符号推理,一种使用运行时推理系统,自动实现Rao-Blackwellized粒子滤波执行概率程序的技术。为了一起执行精确和近似推理,半符号推理系统操纵符号分布以在可能时执行精确推理,并且在必要时回到近似采样。这种方法使系统能够实现开发人员手工编写的相同RBPF。为了确保这一点,我们确定封闭的家庭分布-如线性高斯和有限离散模型-推理系统保证准确的推理。我们已经实现了运行时推理系统的ProbZelus流概率程序设计语言。尽管平均$1.6\times$放缓相比,现有的基准测试的最先进的状态,我们的评估表明,$3\times$ - $87\times$的加速是可获得的一组新的具有挑战性的基准测试,我们已经设计利用封闭的家庭。
2022-11-05 cs.PL
Probabilistic Programming with CuPPL
概率程序设计语言(Probability Programming Languages,PPL)是机器学习中的一个强大工具,它允许简洁地表达高度表达性的生成模型。它们将由语言实现的复杂推理算法与表达性建模语言相结合,该语言允许用户将任何可计算函数实现为生成模型。这种语言通常在现有的高级程序设计语言之上实现,并且不使用硬件加速器。确实存在使用加速器的PPL,但是为了这样做,限制了语言的表达能力。在本文中,我们提出了一种为CPU和GPU生成高效代码的语言和工具链。该语言在风格上是函数式的,工具链构建在LLVM之上。我们的实现在CPU上使用无限的延续来执行推理,并在GPU上使用自定义CUDA代码。与CPU上的其他最先进方法相比,我们在一套PPL工作负载中获得了显着的速度提升。此外,我们的编译器还可以生成在CUDA GPU上运行的高效代码。
2020-10-16 cs.PL
Causal Probabilistic Programming via Magmadic Do-Notation
提出基于非结合幺半群magmads的do-notation元语言,推导因果概率编程构造,实现因果概率编程的新途径。
2026-09-03 cs.LO cs.PL
GenSQL: A Probabilistic Programming System for Querying Generative Models of Database Tables
本研究提出GenSQL概率编程系统,通过扩展SQL实现复杂贝叶斯推理,支持多语言概率模型,经真实案例验证在准确性、简洁性和性能上均优于现有方案。
2024-06-21 cs.PL
Deep Probabilistic Programming Languages: A Qualitative Study
IBM Research(IBM研究公司/IBM研究(注:IBM Research通常译为IBM研究,属于企业研究机构,按要求提取到公司级别))
深度概率程序设计语言试图将深度学习的优势与概率程序设计语言的优势结合起来。如果成功,这将是机器学习和程序设计语言的一大步。不幸的是,到目前为止,这种新的语言很难使用和理解。本文通过解释深度概率程序设计语言直接解决了这个问题,并通过描述其当前的优势和劣势间接解决了这个问题。
2018-04-17 cs.AI cs.PL
Modular probabilistic programming with algebraic effects (MSc Thesis 2019)
University of Edinburgh(爱丁堡大学)
本文提出Koka Bayes库,结合代数效应处理与模块化设计,解决概率编程中推理算法的模块化实现问题。
2024-12-18 cs.PL stat.CO
Compositional Stochastic Modeling and Probabilistic Programming
概率规划是一种通过从离散时间动态切换到连续时间动态来进行随机建模的组合方法。在连续时间中,一个算子代数语义是可用的,其中并行进行的进程(可能相互作用)具有求和的时间演化算子。在此基础上,可以系统地导出用于模拟、推理和模型简化的算法。这些有用的结果可能在计算科学、机器学习及其他领域产生深远的影响。混合成分随机建模/概率编程方法也是可能的。
2012-12-03 cs.AI cs.PL
Expectation Programming: Adapting Probabilistic Programming Systems to Estimate Expectations Efficiently
University of Oxford(牛津大学)
我们表明,概率编程系统(PPS)的标准计算管道可能是低效的估计预期,并引入期望编程的概念来解决这个问题。在期望编程中,后端推理引擎的目的是直接估计程序的期望返回值,而不是近似它们的条件分布。这种区别虽然微妙,但使我们能够通过根据我们关心的期望量身定制计算来实现标准PPS计算管道的实质性性能改进。我们实现了一个特定的实例,我们的期望编程的概念,期望编程图灵(EPT),通过扩展PPS图灵允许所谓的目标感知推理自动运行。然后,我们从理论上验证了EPT的统计合理性,并表明它在实践中提供了大量的经验收益。
2022-06-21 cs.LG cs.PL
Deployable probabilistic programming
PUB+
我们提出了一个适合作为生产软件系统的一部分部署的概率编程设施的设计准则。作为一个参考实现,我们介绍Infergo,一个概率编程工具去,一个现代程序设计语言的选择服务器端软件开发。我们认为,一个类似的概率编程设施可以添加到大多数现代通用程序设计语言。概率编程能够通过基于数据的概率推理来自动调整程序参数和算法决策。为了便于增加概率编程能力,其他程序设计语言,我们分享实施的选择和技术,在开发的Infergo。我们说明了适用性的Infergo的各种用例的案例研究,并评估Infergo的性能在几个基准,比较Infergo专用的推理为中心的概率编程框架。
2019-06-20 cs.AI cs.LG cs.PL
A Compilation Target for Probabilistic Programming Languages
University of Oxford(牛津大学)
通过创造性地使用标准化的操作系统功能,包括进程、分叉、互斥和共享存储器,可以用任何程序设计语言来实现诸如用于概率编程的顺序蒙特卡罗和粒子马尔可夫链蒙特卡罗的前向推理技术。利用这一点,我们已经定义,开发和测试的概率程序设计语言中间表示语言,我们称之为概率C,它本身可以被编译成机器码的标准编译器和链接到操作系统库产生一个有效的,可扩展的,便携式的概率编程编译目标。这为优化概率编程系统开辟了一条新的硬件和系统研究路径。
2014-07-10 cs.AI cs.PL stat.ML
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
Towards representation agnostic probabilistic programming
Institute for Visual and Analytic Computing(视觉与分析计算研究所)
本文提出了一种因素抽象方法,实现表示无关的概率编程,允许在统一框架中混合不同表示进行复杂模型推断。
2025-12-25 cs.AI cs.PL
VAEL: Bridging Variational Autoencoders and Probabilistic Logic Programming
University of Bologna(博洛尼亚大学);KU Leuven(鲁汶大学)
我们提出了VAEL,神经符号生成模型集成变分自编码器(VAE)与概率逻辑(L)编程的推理能力。除了标准的潜在子符号变量,我们的模型利用概率逻辑程序来定义一个进一步的结构化表示,这是用于逻辑推理。整个过程是端到端的差异化。一旦经过训练,VAEL可以通过(i)利用神经组件中编码的先前获得的知识以及(ii)在结构化潜在空间上利用新的逻辑程序来解决新的看不见的生成任务。我们的实验提供了支持的好处,这种神经符号积分的任务泛化和数据效率。据我们所知,这项工作是第一个提出一个通用的端到端框架集成概率逻辑编程到一个深生成模型。
2022-05-25 cs.LG cs.PL
Deterministic stream-sampling for probabilistic programming: semantics and verification
本文提出以采样器为核心的高阶概率编程语言及其连续映射语义,并通过类型系统处理不连续操作,进而给出采样器等价推理与正确性证明的形式化演算。
2023-04-26 cs.LO cs.PL
RankPL: A Qualitative Probabilistic Programming Language
University of Luxembourg(卢森堡大学)
在本文中,我们介绍RankPL,建模语言,可以被认为是一个定性的概率程序设计语言的语义的基础上Spohn的排名理论的变体。一般来说,RankPL可以用来表示和推理那些表现出不确定性的过程,这些不确定性可以通过区分“正常”和“令人惊讶”的事件来表达。RankPL允许(迭代)修改替代程序状态的排名,并支持各种类型的推理,包括溯因推理和因果推理。我们提出的语言,它的指称语义,和一些实际的例子。我们还讨论了可供下载的RankPL的实现。
2017-05-19 cs.AI cs.PL
Multi-Model Probabilistic Programming
Columbia University(哥伦比亚大学)
概率编程使得将概率模型表示为程序变得容易。然而,建立个体模型只是概率建模的一个步骤。概率建模更广泛的挑战是理解和导航替代模型的空间。目前还没有好的方法来表示这些替代模型的空间,尽管它们发挥着核心作用。我们提出了一个扩展的概率规划,让每个程序表示一个网络的相互关联的概率模型。我们给出了这些多模型的概率程序,收集有效的算法网络的模型操作,并建立在流行的概率程序设计语言斯坦顶部的一个例子实现的正式语义。这种模型网络表示打开了许多门,包括模型空间中的搜索和自动化,模型开发的跟踪和通信,以及显式建模器自由度以减轻p-hacking等问题。我们演示了自动模型搜索和模型开发跟踪使用我们的斯坦实现,我们提出了许多可能的应用。
2022-08-12 cs.LG cs.PL stat.ME
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
Fast and Correct Gradient-Based Optimisation for Probabilistic Programming via Smoothing
University of Oxford(牛津大学);NTU Singapore(新加坡南洋理工大学)
我们研究变分推理的基础,框架后验推理作为一个优化问题,概率规划。在实践中,用于优化的主要方法是随机梯度下降。特别是,使用所谓的reparameterisation梯度估计器的变体在传统的统计设置中表现出快速收敛。不幸的是,在程序设计语言中很容易表达的不连续性可能会损害这种方法的正确性。我们认为一个简单的(高阶,概率)程序设计语言的条件,我们赋予我们的语言与可测量和平滑(近似)的值语义。我们提出建立技术前提的类型系统。因此,我们可以证明随机梯度下降与重新参数化梯度估计是正确的,当应用到平滑的问题。此外,我们可以解决原问题的任何误差容限,通过选择适当的精度系数。从经验上讲,我们证明了我们的方法具有与主要竞争对手相似的收敛性,但更简单,更快,并且在工作归一化方差方面达到了数量级的降低。
2023-01-09 cs.LG cs.PL
Probabilistic Programming Meets Automata Theory: Exact Inference using Weighted Automata
RWTH Aachen University(亚琛工业大学)
本文提出利用加权自动机实现有限概率程序的精确推断,通过将变量分布编码为自动机来计算后验分布。
2025-12-15 cs.FL cs.PL
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
SimPLoID: Harnessing probabilistic logic programming for infectious disease epidemiology
本文提出基于ProbLog的流行病学建模框架SimPLoID,融合仓室模型与网络建模,并提供面向非编程研究人员的领域特定语言,实现传染病动态的灵活紧凑表达。
2023-12-01 cs.PL cs.SI
Static Analysis for Probabilistic Programs
概率编程是统计机器学习的一个强大的抽象。将静态分析方法应用于概率程序,可以优化学习过程,自动验证模型的性质,改善用户编程界面。这个领域的静态分析的概率规划(SAPP)是年轻的和无组织的,由一个星座的技术与各种目标和限制。这项工作的主要目的是在一个组织结构和背景下综合SAPP领域的主要贡献。我们提供了技术背景的静态分析和概率编程,建议概率程序设计语言的功能分类法,并分析在SAPP领域的主要思想的适用性。我们的结论是,虽然目前的概率程序的静态分析技术有实际的局限性,有一些未来的方向具有很大的潜力,以改善统计机器学习的状态。
2019-09-10 cs.LG cs.PL stat.ML
Program Analysis of Probabilistic Programs
University of Edinburgh(爱丁堡大学)
概率编程是一个不断发展的领域,它通过将概率建模与概率推理分离,努力使统计分析更容易获得。在实践中,这种脱钩是困难的。没有一种推理算法可以用作同时可靠、高效、黑盒和通用的概率编程后端。可能的程序设计语言通常选择一个算法来应用于给定的问题,从而继承其局限性。虽然已经做了大量的工作,以形式化的概率编程和提高推理效率,很少有工作,利用现有的程序结构,通过正式分析,以更好地利用底层推理算法。本文提出了三种新的技术(静态和动态),旨在提高概率规划使用程序分析。这些技术分析一个概率程序,并对其进行调整,以使推理更有效,有时是以一种单调乏味或不可能手工完成的方式进行的。
2022-04-14 cs.LG cs.PL stat.ML
Knowledge Compilation with Continuous Random Variables and its Application in Hybrid Probabilistic Logic Programming
KU Leuven(鲁汶大学)
在概率推理中,传统的离散域已被提升到包含额外连续随机变量的混合域。然而,在混合域中的推理通常需要对离散或连续随机变量的推理进行权衡。我们介绍了一种新的方法,加权模型集成和代数模型计数的基础上,规避这些权衡。然后,我们展示了它如何支持知识编译和精确的概率推理。此外,我们引入了混合概率逻辑程序设计语言HAL-ProbLog,ProbLog的扩展,我们适用于我们的推理方法。
2018-07-12 cs.AI cs.LO cs.PL
Monolingual Probabilistic Programming Using Generalized Coroutines
FNMOC(美国海军舰队气象与海洋学中心);Rutgers University(罗格斯大学)
概率程序设计语言和建模工具包是构建和重用随机模型和推理过程的两种模块化方法。结合两者的优势,我们在同一通用语言中将模型和推理表示为广义协程。我们使用语言的现有设施,如丰富的库,优化编译器和类型,开发简洁,声明性和现实的模型,具有竞争力的性能,精确和近似推理。特别地,可以使用备忘录化来表达广泛的模型。因为模型的确定性部分是全速运行的,所以自定义推理过程是微不足道的,并且推理过程可以在没有解释开销的情况下进行推理。在这个框架内,我们介绍了一个新的,一般的重要性采样算法与前瞻。
2012-05-09 cs.AI cs.PL
Imprecise Probabilistic Programming, Precisely: Credal Sets via Graded Monads, BDDs, and Semiring-Parametric Inference (Functional Pearl)
University of Oxford(牛津大学)
研究不精确概率编程,通过分级单子、BDD和半环参数推理实现可信集。引入Haskell嵌入式DSL Imp,利用分级单子恢复交换性,且相同编译BDD支持多种推理,展示不精确概率编程的新方法及优势。
2026-07-24 cs.PL math.PR
Probabilistic Alias Analysis for Parallel Programming in SSA Forms
不同类型程序设计语言的静态别名分析一直是研究者关注的问题。然而,大多数现有的别名分析技术的结果是不够精确的现代编译器的需要相比。在现代编译器的优化技术中,需要这些结果的概率版本,其中结果元素与发生概率相关联。本文提出了一种新的并行程序别名分析的概率方法。所处理的并行模型是SPMD,其中在SPMD中,使用在不同数据上的分布式机器上运行的固定数量的程序线程来执行程序。被分析的程序被假定为在静态单分配(SSA)的形式,这是一个程序表示形式,方便程序分析。所提出的技术具有简单的推理规则系统的形式。这使得能够在诸如携带证明代码(PPC)的应用中使用该系统,PPC是用于证明现代程序的安全特性的通用技术。
2014-05-17 cs.PL cs.SE
Probabilistic Programming Semantics for Name Generation
我们做一个正式的类比之间的随机抽样和新鲜的名字生成。我们表明,准Borel空间,概率规划模型,可以合理地解释斯塔克的$ν$ -演算,演算的名称生成。此外,我们证明了这种语义是完全抽象的一阶类型。这是令人惊讶的“现成的”模型,并需要一个新的分析函数空间上的概率分布。我们的工具是多样的,包括描述集理论和范式的$ν$ -演算。
2020-12-20 cs.LO cs.PL math.LO
A New Approach to Probabilistic Programming Inference
University of Oxford(牛津大学);Columbia University(哥伦比亚大学);Massachusetts Institute of Technology(麻省理工学院)
我们介绍并证明了一种新的方法,推理表达概率编程语言的基础上粒子马尔可夫链蒙特卡罗。我们的方法是简单的实现和易于并行化。它适用于图灵完备概率编程语言,并支持使用复杂控制流(包括随机递归)的模型中的精确推理。它还包括贝叶斯非参数统计的基元。我们的实验表明,这种方法可以更有效地比以前介绍的单站点Metropolis-Hastings方法。
2015-07-09 cs.AI cs.PL stat.ML
Data Petri Nets meet Probabilistic Programming (Extended version)
German Research Center for Artificial Intelligence (DFKI)(德国人工智能研究中心);University of Trier(特里尔大学);Technical University of Denmark(丹麦技术大学)
本文提出将数据Petri网系统转换为多数概率编程系统支持的PP语言模型的方法,证明其可靠性与统计仿真保证,探讨了其在流程挖掘等场景的应用并实现了原型。
2024-06-12 cs.AI cs.PL
Commutative Monads for Probabilistic Programming Languages
在支持概率选择的程序设计语言的语义中,一个长期存在的公开问题是在DCPO范畴上找到概率的交换单子。在本文中,我们提出了三个这样的单子和一个一般的建设,以寻找更多。我们将展示如何使用这些单子提供一个健全的和足够的指称语义的概率定点演算(PFPC)-调用值简单类型的λ演算与混合方差递归类型,长期递归和概率选择。我们还表明,在特殊的情况下,我们认为连续dcpo的,那么所有三个单子符合估值单子的琼斯和我们充分的诱导Eilenberg-Moore类别表明,他们都同构的范畴连续Kegelspitzen的凯梅尔和Plotkin。
2021-01-31 cs.LO cs.PL math.CT
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
Simple, Distributed, and Accelerated Probabilistic Programming
Google Brain(谷歌大脑);Google(谷歌)
我们描述了一种简单的,低级的方法,用于在深度学习生态系统中嵌入概率编程。特别地,我们将概率规划提炼为一个单一的抽象-随机变量。我们在TensorFlow中的轻量级实现支持多种应用:具有第二代张量处理单元(TPUv 2)的模型并行变分自动编码器(VAE);具有TPUv 2的数据并行自回归模型(Image Transformer);以及多GPU无U形转弯采样器(NUTS)。对于64 x64 ImageNet上最先进的VAE和256 x256 CelebA-HQ上的Image Transformer,我们的方法实现了从1到256 TPUv 2芯片的最佳线性加速。使用NUTS,我们看到GPU上的加速比Stan快100倍,比PyMC 3快37倍。
2018-11-29 cs.LG cs.PL 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
Probabilistic Programming with Densities in SlicStan: Efficient, Flexible and Deterministic
Stan是一种概率程序设计语言,越来越多地用于现实世界的可扩展项目。然而,为了使实际推理成为可能,该语言通过采用块语法牺牲了一些可用性,这缺乏组合性和灵活的用户定义函数。此外,该语言的语义主要是根据实现的直觉给出的,并且还没有正式化。本文提供了一个正式的处理斯坦语言,并介绍了概率程序设计语言SlicStan -组成,自我优化版本的斯坦。我们的主要贡献是:(1)通过基于操作密度的语义来形式化Stan的核心子集;(2)Stan类语言SlicStan的设计和语义,通过其组合语法,更灵活的功能和信息流类型系统来实现更好的代码重用和抽象;(3)将SlicStan转换为Stan的形式化,语义保持过程。
2018-11-02 cs.PL stat.CO stat.ML
Borch: A Deep Universal Probabilistic Programming Language
Desupervised ApS
自从多层感知器首次被引入以来,连接主义社区一直在努力解决不确定性的概念以及如何在这些类型的模型中表示。在过去的十年里,人们做了很多努力,试图将概率建模的原则性方法与深度神经网络的可扩展性结合起来。虽然这种整合的理论好处是显而易见的,但这些努力也有几个重要的实践方面;即迫使我们创建的模型在每次预测中表示,学习和报告不确定性。其中许多努力都是以增加结构来扩展现有框架。我们介绍了Borch,一种可扩展的深度通用概率程序设计语言,构建在PyTorch之上。代码可以在我们的存储库https://gitlab.com/desupervised/borch中下载和使用。
2022-09-13 cs.AI cs.LG cs.PL
Probabilistic programming interfaces for random graphs: Markov categories, graphons, and nominal sets
本文研究图上概率编程语言的语义模型,建立其与图子的联系,证明良态等式理论与图子一一对应,并通过Markov范畴、测度论概率和名义集合三种构造证明所有图子均源于等式理论,从而构建了图概率编程新模型。
2023-12-28 cs.LO cs.PL math.PR
Semantics for Variational Quantum Programming
我们考虑一个程序设计语言,可以操纵经典和量子信息。我们的语言是类型安全的,设计用于变分量子编程,这是一个混合的经典量子计算范式。该语言的经典子系统是概率定点演算(PFPC),它是一个具有混合方差递归类型、项递归和概率选择的λ演算。量子子系统是一个可以操纵量子信息的一阶线性系统。这两个子系统通过混合的经典/量子项相关联,这些项指定了经典概率效应如何由量子测量引起,以及相反地,经典(概率)程序如何影响量子动力学。我们还描述了一个声音和计算足够的指称语义的语言。经典的概率效应解释使用最近描述的交换概率单子DCPO。量子效应和资源被解释在一类冯诺依曼代数,我们显示是丰富的(连续)域。这种强烈的丰富感使我们能够开发新的语义方法,我们用来解释量子和经典概率效应之间的关系。通过这样做,我们提供了第一个指称的分析,涉及模型的经典概率规划模型的量子规划。
2021-07-28 cs.LO cs.PL math.CT
A domain-theoretic framework for conditional probability and Bayesian updating in programming
本文提出一个用于概率编程的域论框架,通过事件可观测概念给出条件概率的构造性定义并解决可计算性挑战,研究了两种计算方法并证明其一致性,为概率编程语言中条件概率的实现提供了严格基础。
2025-02-02 cs.LO cs.PL
An asymptotic analysis of probabilistic logic programming, with implications for expressing projective families of distributions
LMU München(慕尼黑大学)
概率逻辑编程是统计关系型人工智能的重要组成部分,其中将逻辑和概率方法结合在一起,在不确定性环境中推理和学习关系域。然而,跨可变域大小的统计关系表示的行为是复杂的,并且将推理和学习扩展到大型域仍然是一个重大挑战。近年来,域大小依赖、提升推理和从抽样子群体中学习之间出现了联系。统计关系表示的渐近行为已经受到审查,和投影被调查的最强形式的域大小的依赖,其中查询边际是完全独立的域大小。在这篇文章中,我们证明了每一个概率逻辑程序下的分布语义是渐近等价于一个非循环的概率逻辑程序只包括确定条款的概率事实。我们的结论是,每一个概率逻辑程序诱导一个投影族的分布,实际上是处处等价于一个程序从这个片段,我们调查的后果,为投影族的分布概率逻辑程序表示。为了方便应用的经典结果从有限模型理论,我们引入了抽象的分布语义,定义为一个任意的逻辑理论概率事实。这弥合了与概率逻辑编程基础的分布语义之间的差距。在这种表示中,确定性逻辑程序对应于无量词理论,使得渐近量词消去结果可用于概率逻辑编程的设置。本文件正在考虑被TPLP接受。
2021-08-18 cs.AI cs.LO cs.PL
Discrete-Continuous Mixtures in Probabilistic Programming: Generalized Semantics and Inference Algorithms
University of California, Berkeley(加州大学伯克利分校);Arizona State University(亚利桑那州立大学);Vicarious Inc.(维卡里奥公司);Carnegie Mellon University(卡内基梅隆大学)
尽管最近概率程序设计语言(PPL)在人工智能应用中取得了成功,但PPL仅提供有限的随机变量支持,其分布结合了离散和连续元素。我们开发的概念的测量理论贝叶斯网络(MTBN),并使用它来提供更一般的语义PPLs与任意多个随机变量定义在任意测量空间。我们开发了两个新的通用采样算法,可证明是正确的MTBN框架下:字典似然加权(LLW)一般MTBN和字典粒子滤波器(LPF),一个专门的算法状态空间模型。我们进一步集成MTBN到一个广泛使用的PPL系统,博客,并通过代表性的例子验证新的推理算法的有效性。
2018-06-08 cs.AI cs.LG cs.PL
Probabilistic Programming with Exact Conditions
本文提出精确条件化范式,对比似然评分,在离散和高斯概率下用CD范畴给出语义,建立范畴与编程语言的对应。
2023-12-28 cs.LO cs.PL math.PR
Bottom-Up Grounding in the Probabilistic Logic Programming System Fusemate
Data61/CSIRO(联邦科学与工业研究组织Data61部门)
本文介绍概率逻辑编程系统Fusemate,其采用自底向上实例化结合查询引导相关性测试控制基例规模,实验显示其性能可比肩甚至优于现有先进系统,高分支问题上优势明显。
2023-08-26 cs.AI cs.LO cs.PL