论文标题
ADEV:概率程序的预期值的声音自动差异
ADEV: Sound Automatic Differentiation of Expected Values of Probabilistic Programs
论文作者
论文摘要
优化概率过程的预期值是计算机科学及其应用中的一个核心问题,在从人工智能到操作研究到统计计算的领域中引起的。不幸的是,针对确定性程序开发的自动分化技术一般不会计算基于基于梯度的优化的广泛使用解决方案所需的正确梯度。 在本文中,我们介绍了ADEV,这是向前模式AD的扩展,该扩展可以正确区分表示为随机选择的程序的概率过程的期望。我们的算法是一种源代源的程序转换,具有概率计算的表达性高阶语言,具有离散概率和连续概率分布。我们转型的结果是一个新的概率计划,其预期回报值是原始程序期望的派生。可以运行此输出程序以生成所需梯度的无偏蒙特卡洛估计值,然后可以在随机梯度下降的内环内使用。我们证明了ADEV使用逻辑关系对源和目标概率程序的表示。由于它可以模块化扩展前向模式AD,因此我们的算法将自己适合于简洁的实施策略,我们利用它在仅几十个Haskell(https://github.com/probcomp/adev)中开发原型。
Optimizing the expected values of probabilistic processes is a central problem in computer science and its applications, arising in fields ranging from artificial intelligence to operations research to statistical computing. Unfortunately, automatic differentiation techniques developed for deterministic programs do not in general compute the correct gradients needed for widely used solutions based on gradient-based optimization. In this paper, we present ADEV, an extension to forward-mode AD that correctly differentiates the expectations of probabilistic processes represented as programs that make random choices. Our algorithm is a source-to-source program transformation on an expressive, higher-order language for probabilistic computation, with both discrete and continuous probability distributions. The result of our transformation is a new probabilistic program, whose expected return value is the derivative of the original program's expectation. This output program can be run to generate unbiased Monte Carlo estimates of the desired gradient, which can then be used within the inner loop of stochastic gradient descent. We prove ADEV correct using logical relations over the denotations of the source and target probabilistic programs. Because it modularly extends forward-mode AD, our algorithm lends itself to a concise implementation strategy, which we exploit to develop a prototype in just a few dozen lines of Haskell (https://github.com/probcomp/adev).