一句话:提出以采样器为中心的高阶概率语言,给出操作/指称语义,并建立验证采样器正确性的演算。
概率编程语言依赖采样,尤其在使用蒙特卡洛进行贝叶斯推断时更是如此;验证采样器能生成正确分布的样本对统计建模与推断至关重要。然而,传统概率程序指称语义与确定性采样(包括伪随机数生成器)不兼容。本文提出一种以采样器和采样器操作为核心的高阶概率编程语言,用拓扑空间之间的连续映射给出其操作语义与指称语义,并借助类型系统追踪不连续性,从而支持实数比较等不连续操作。基于该语言,作者发展了采样器形式验证工具:一个用于推理采样器等价的等式演算,以及一个可靠的演算,用于证明采样器按构造正确目标给定测度。
Probabilistic programming languages rely fundamentally on some notion of sampling, and this is doubly true for probabilistic programming languages which perform Bayesian inference using Monte Carlo techniques. Verifying samplers—proving that they generate samples from the correct distribution—is crucial to the use of probabilistic programming languages for statistical modelling and inference. However, the typical denotational semantics of probabilistic programs is incompatible with deterministic notions of sampling. This is problematic, considering that most statistical inference is performed using pseudorandom number generators.We present a higher-order probabilistic programming language centred on the notion of samplers and sampler operations. We give this language an operational and denotational semantics in terms of continuous maps between topological spaces. Our language also supports discontinuous operations, such as comparisons between reals, by using the type system to track discontinuities. This feature might be of independent interest, for example in the context of differentiable programming.Using this language, we develop tools for the formal verification of sampler correctness. We present an equational calculus to reason about equivalence of samplers, and a sound calculus to prove semantic correctness of samplers, i.e. that a sampler correctly targets a given measure by construction.
DOI 原文 · arXiv · PDF(开放获取) · DBLP
@inproceedings{abs-2304-13504,
title = {Deterministic stream-sampling for probabilistic programming: semantics and verification},
author = {Fredrik Dahlqvist and Alexandra Silva and William Smith},
booktitle = {LICS},
year = {2023},
doi = {10.1109/lics56636.2023.10175773}
}