Probabilistic programming languages (PPLs) are expressive means for creating and reasoning about probabilistic models. Unfortunately hybrid probabilistic programs, involving both continuous and discrete structures, are not well supported by today's PPLs. In this paper we develop a new approximate inference algorithm for hybrid probabilistic programs that first discretizes the continuous distributions and then performs discrete inference on the resulting program. The key novelty is a form of discretization that we call bit blasting, which uses a binary representation of numbers such that a domain of $2^b$ discretized points can be succinctly represented as a discrete probabilistic program over poly($b$) Boolean random variables. Surprisingly, we prove that many common continuous distributions can be bit blasted in a manner that incurs no loss of accuracy over an explicit discretization and supports efficient probabilistic inference. We have built a probabilistic programming system for hybrid programs called HyBit, which employs bit blasting followed by discrete probabilistic inference. We empirically demonstrate the benefits of our approach over existing sampling-based and symbolic inference approaches.
翻译:概率编程语言(PPLs)是创建和推理概率模型的表达性工具。然而,涉及连续与离散结构的混合概率程序在当前PPLs中并未得到良好支持。本文针对混合概率程序提出一种新的近似推理算法,该算法首先对连续分布进行离散化,再对生成的程序执行离散推理。关键创新在于一种称为位爆破(bit blasting)的离散化形式,它利用数字的二进制表示,使得包含2^b个离散点的定义域可被简洁地表示为关于poly(b)个布尔随机变量的离散概率程序。令人惊讶的是,我们证明许多常见连续分布可通过位爆破方式实现,且相较于显式离散化方法其精度无损失,同时支持高效的概率推理。我们构建了一个面向混合程序的概率编程系统HyBit,该系统采用位爆破后接离散概率推理的方法。通过实验验证,本方法相较于现有基于采样和符号推理的方法具有显著优势。