We present the Sum-Product Probabilistic Language (SPPL), a new probabilistic programming language that automatically delivers exact solutions to a broad range of probabilistic inference queries. SPPL translates probabilistic programs into sum-product expressions, a new symbolic representation and associated semantic domain that extends standard sum-product networks to support mixed-type distributions, numeric transformations, logical formulas, and pointwise and set-valued constraints. We formalize SPPL via a novel translation strategy from probabilistic programs to sum-product expressions and give sound exact algorithms for conditioning on and computing probabilities of events. SPPL imposes a collection of restrictions on probabilistic programs to ensure they can be translated into sum-product expressions, which allow the system to leverage new techniques for improving the scalability of translation and inference by automatically exploiting probabilistic structure. We implement a prototype of SPPL with a modular architecture and evaluate it on benchmarks the system targets, showing that it obtains up to 3500x speedups over state-of-the-art symbolic systems on tasks such as verifying the fairness of decision tree classifiers, smoothing hidden Markov models, conditioning transformed random variables, and computing rare event probabilities.
翻译:我们展示了“总和概率语言”(SPPL),这是一种新的概率编程语言,它自动为一系列广泛的概率推论查询提供精确的解决方案。SPPL将概率程序翻译为批量产品表达式,这是一个新的象征性表示和相关的语义域,扩展标准和产品网络,以支持混合型分配、数字转换、逻辑公式以及点值和定值限制。我们通过从概率程序到总产品表达式的新翻译战略,正式确定SPPL,并为事件概率的调控和计算提供精确的精确算法。SPPL对概率程序实施了一系列限制,以确保它们能够转化为批量产品表达式,使系统能够利用新的技术,通过自动利用概率结构来改进翻译和推断的伸缩性。我们实施了带有模块结构的SPPL原型,并评估了系统目标基准,表明它获得了3500x的速度,超过了状态和计算事件概率和计算概率的精确算法。SPPLL对概率程序实施了一系列限制,以确保概率程序能够被转换成批量,从而利用新技术改进翻译的可变性决定的稳定性,从而稳定地稳定地稳定地分析树的变变等。