DynamicPPL:面向动态概率模型的类 Stan 速度
机器学习
2020-02-10 v1 编程语言
机器学习
摘要
我们展示了 DynamicPPL.jl 的初步高层设计与特性,这是一个为概率编程提供极快基础设施的模块化库。除了通常接近或优于 Stan 的计算性能外,DynamicPPL 提供了一种直观的 DSL,允许快速开发复杂的动态概率程序。DynamicPPL 完全用 Julia(一种用于数值计算的高层动态编程语言)编写,因此继承了通过 Julia 生态系统可用的大量特性。由于 DynamicPPL 是一个模块化的独立库,任何用 Julia 编写的概率编程系统(如 Turing.jl)都可以使用 DynamicPPL 来指定模型并追踪其模型参数。DynamicPPL 的主要特性为:1) 基于元编程的 DSL,使用直观的波浪号记号指定动态模型;2) 用于在动态概率模型中追踪随机变量(RVs)的追踪数据结构;3) 丰富的上下文派发系统,允许在模型执行期间定制行为;4) 用于概率查询的用户友好语法。最后,我们在多种实验中表明,DynamicPPL 与 Turing.jl 结合使用,所达到的计算性能通常接近或优于 Stan。
引用
@article{arxiv.2002.02702,
title = {DynamicPPL: Stan-like Speed for Dynamic Probabilistic Models},
author = {Mohamed Tarek and Kai Xu and Martin Trapp and Hong Ge and Zoubin Ghahramani},
journal= {arXiv preprint arXiv:2002.02702},
year = {2020}
}