一句话:指出朴素似然累积在条件化零测度事件时导致悖论,并提出用无穷小概率累积执行概率程序来消除悖论。
概率编程语言用 observe 语句表示条件分布,其执行通常累积似然以引导随机选择并加权推断。论文指出,这种朴素的似然累积语义并不理想:当 observe 用于条件化零测度事件,尤其是该语句在随机数据下被条件执行时,会产生悖论。作者提出将零测度事件显式建模为正测度事件的极限,并通过累积无穷小概率而非概率密度来执行此类概率程序。结果表明,这一扩展使概率编程语言作为概率分布的可执行表示更加行为良好、更具表达力,并允许程序员明确指定条件化零测度事件时所意图的极限。
Abstract Probabilistic programming languages allow programmers to write down conditional probability distributions that represent statistical and machine learning models as programs that use observe statements. These programs are run by accumulating likelihood at each observe statement, and using the likelihood to steer random choices and weigh results with inference algorithms such as importance sampling or MCMC. We argue that naive likelihood accumulation does not give desirable semantics and leads to paradoxes when an observe statement is used to condition on a measure-zero event, particularly when the observe statement is executed conditionally on random data. We show that the paradoxes disappear if we explicitly model measure-zero events as a limit of positive measure events, and that we can execute these type of probabilistic programs by accumulating infinitesimal probabilities rather than probability densities. Our extension improves probabilistic programming languages as an executable notation for probability distributions by making it more well-behaved and more expressive, by allowing the programmer to be explicit about which limit is intended when conditioning on an event of measure zero.
@article{paperbot1190,
title = {Paradoxes of probabilistic programming: and how to condition on events of measure zero with infinitesimal probabilities},
author = {Jules Jacobs},
journal = {Proceedings of the ACM on Programming Languages},
volume = {5},
number = {POPL},
year = {2021},
doi = {10.1145/3434339}
}