对强大的数学或算法思想的有效软件实现的开放访问通常会导致各种实际领域的急剧增长的进步
摘要
我们引入反应式消息传递(RMP)作为在概率模型的因子图表示中执行无调度、健壮和可扩展的 基于消息传递的推理的框架。RMP基于反应式编程风格,这种风格只描述了因子图中的节点如何对连接节点的 变化做出反应。没有固定的消息传递时间表提高了推理过程的健壮性、可伸缩性' 和执行时间。我们还介绍了ReactiveMP.jl,它是一个Julia包,通过最小化约束J Bethe自由能来实现RMP。通过用户定义的局部形式规范和对变分后验分布的因’ 式分解约束,ReactiveMP.jl执行混合消息传递算法,包括信念传播、变分消息传 递、期望传播和期望最大化更新规则。实验结果表明,与其他Julia包相比,基于 ReactiveMP的RMP在一系列概率模型上的贝叶斯推理性能有所提高。特别地,我们表明RMP框架能够在标准的笔记本电脑上运行具有成千上万随机 变量的大规模概率状态空间模型的贝叶斯推理。
关键词
贝叶斯推理,因子图,消息传递,反应式编程,变分推理
1介绍
在这篇论文中,我们发展了一个反应式的方法来进行因子图上的贝氏推论。我们提供了通过反应 式编程范例实现的基于消息传递的推理的方法、实现方面和模拟结果。贝叶斯推理方法有助于实 现非常广泛的有用应用,但在我们的情况下,我们的动机是在具有数据流的状态空间模型中执行 实时贝叶斯推理,该数据流可能会在不确定的时间段内提供无限数量的观察值。
本文的主要思想是将因子图上基于消息传递的贝叶斯推理与反应式编程方法相结合,为高效、可伸 缩、自适应和健壮的贝叶斯推理实现奠定基础。效率意味着比替代方法更少的执行时间和更少的内 存消耗;可扩展性指的是在可能有成千上万个随机变量的大型概率模型中运行推理;适应性意味着 实时就地概率模型调整,而稳健性涉及针对故障传感器和丢失数据的保护。我们相信,所提出的方 法,我们称之为反应式消息传递(RMP),将有助于将基于贝叶斯推理的代理的研究思想转移到现实’ 世界的应用中。为此,我们开发并展示了ReactiveMP.jl,这是一个开源的Julia包,它在概率模型 的因子图表示上实现了RMP。我们的目标是让ReactiveMP.jl成长为支持推理在复杂贝叶斯代理中的实际、工业应用,并有望推动该领域的更多研究。
在第2节中,我们通过分析替代方法的一些弱点来激发RMP的需求。第3节回顾了因子图上基于消息传递的推理 和作为约束Bethe自由能优化问题的变分贝叶斯推理的背景知识。本文的其余部分讨论了我们的主要贡献:
在第4节中,我们提出了反应式消息传递的概念,通过在因子图中传递消息来执行事件驱 动的反应式贝叶斯推理。RMP是一个非常简单的想法,它结合了来自不同领域的两种经过 充分研究的方法:基于消息传递的贝叶斯推理和反应式编程;
在第5节中,我们以Julia编程语言的ReactiveMP.jl包的形式,展示了用于自动贝叶斯推理 的RMP的高效且可扩展的实现。我们还介绍了概率模型和推理约束的规范语言;
在第6节中,我们在各种标准概率信号处理模型上对ReactiveMP.jl进行了基准测试,并将其 与现有的基于消息传递和基于采样的贝叶斯推理实现进行了比较。
我们表明,我们的新实现很容易在常规MacBook Pro笔记本电脑上扩展到包含成千上万 随机变量的共辄状态空间模型。对于这些模型,就执行时间、内存消耗和可伸缩性而言' ,所提出的RMP实现贝叶斯推理比现有的解决方案好几百倍,并且根据数据集的 大小和模型中随机变量的数量,大约需要几毫秒或几分钟。
最后,在第7节中,我们讨论了正在进行的工作和潜在的未来研究方向。
2]动机
对强大的数学或算法思想的有效软件实现的开放访问通常会导致各种实际领域的急剧增长的进 步。例如,人工神经网络中的反向传播至少起源于20世纪80年代,但由于硬件和相应软件实现' 中的新解决方案,如TensorFlow [Martin AbadiW人,2015年]或Py Torch [Paszke等人, 2019],
然而,贝叶斯推理在现实世界信号处理问题中的应用仍然是一个巨大的挑战。
如果我们考虑一个试图在一个新的地形中寻找道路的自主机器人,我们会希望它能够实时推理周围 的环境,并对传感器的潜在故障保持稳健。此外,机器人优选地不仅具有适应新观察的能力,还具 有实时调整其当前环境的内部表示的能力。此外,机器人的计算能力有限,应该节能。这些问题在 将基于实时贝叶斯推理的合成代理部署到现实世界问题时形成了非常具有挑战性的障碍。
在本文中,我们的目标是为状态空间模型中高效、可伸缩和健壮的贝叶斯推理的新方法建立基础,并 发布开源工具箱来支持幵发过程。效率,意味着用有限的计算和能量预算执行实时贝叶斯推' 理的能力。对于可伸缩性,我们指的是在有限的资源下以可接受的精度执行推理,即使模型大小和潜 在变量的数量变得非常大。健壮性也是一个重要的特性,我们的意思是,如果推理系统部署在真实世 界的环境中,那么即使系统的一部分崩溃,它也需要保持连续的可操作性。
我们提出了一种基于消息传递的Forney式因子图上的贝叶斯推理和反应式编程方法的组合,据 我们所知,该方法在消息传递文献中不太为人所知并且是新的。我们的方法受到神经科学社区和 自由能原理[Friston, 2009]的启发,因为大脑是一个很好的工作系统的例子,它已经以较小的 能耗预算实现了大规模的实时和稳健的贝叶斯推理。
复杂现实世界信号(如语音或视频流)的消息传递生成模型通常由高度分解的概率模型描述,该模型具有稀疏的结 构和潜在变量之间很少的依赖性。
这种模型中的贝叶斯推理可以通过在因子图的边上传递消息来有效地执行。因子图可视化了概率模 型的因子化表示,其中边表示潜在变量,节点表示这些变量之间的函数依赖关系。一般来说,随着 模型规模的扩大,包括更多的潜在变量,潜在变量之间的直接依赖部分减少,结果是因子图减少 变得更加稀疏。对于高度分解的模型,有效的推理可以通过消息传递来实现,因为它自然地利用了变量 之间的条件独立性。
基于消息传递的贝叶斯推理的现有软件包,如ForneyLab.jl [van de Laar等人,2018]和lnfer.Net[ Minka等人,2018],都是以命令式编程风格实现的。在执行这些软件包中的消息传递算法之前, 需要指定一个消息传递时间表(即消息的顺序)[Elidan等人,2012年,Bishop, 2006年]。在我们看 来,命令式的编码风格和对预先指定的消息时间表的依赖从很多角度来看都是有问题的。例如,固 定的预先计算的时间表需要对与模型相对应的因素图进行全面分析,如果模型结构进行了调整,例 如,通过删除节点,那么我们将被迫停止系统并创建新的时间表。这种限制使得很难在现场部署系统,因为我们要么放弃模型结构优化,要么放弃系统持续运行的保证。此外,在现实世界的信 号处理应用中,数据通常异步到达,并且在不同的传感通道中可能具有显著不同的更新速率。典型 麦克风的采样速率为44.1kHz,而典型摄像机传感器的采样速率为30-60 Hzo这些因素造成了复杂 性,因为基于显式顺序调度的方法需要工程师为不同的数据源创建不同的调度,并显式地同步它们 ,这可能是麻烦且容易出错的。
在本文中,我们从实现的角度对基于消息传递的推理提供了一个全新的视角。我们探索使用反应式 编程(RP)范例作为上述问题的解决方案的可行性。本质上,RP支持通过动态响应数据源的变化来 运行计算,从而消除了对预先计算的同步消息更新方案的需要。从物理模拟[Boussinot等人, 2015年]到神经网络[Busch等人,2020年]以及概率规划[Baudart等人,2019年],在各个领域都 研究了使用RP解决不同问题的好处。我们提出了一种新的反应式消息传递框架,简称为反应式消 息传递(RMP)。新的基于消息传递的推理框架设计为在没有任何预先指定的时间表的情况下运行, 自动对数据变化做出反应,扩展到具有成千上万未知的大型概率模型,并且原则上允许更高级的功 能,例如运行时概率模型调整、并行推理执行和对具有不同更新速率的异步数据流的内置支持。
为了支持进一步的开发,我们以Julia编程语言软件包ReactiveMP.j啲形式展示了我们自己的 RMP框架实现。我们展示了不同概率模型的新实现的示例和基准,包括高斯线性动态系统、隐 马尔可夫模型和非共辄分层高斯滤波器模型。更多示例包括混合模型、自回归模型、高斯流模型 、实时处理、基于期望传播算法的更新规则等,可在GitHub上的ReactiveMP.jl存储库中找到。
3背景
本节首先简要介绍Forney式因子图上基于消息传递的精确贝叶斯推理。
然后,我们通过基于约束贝叶斯自由能最小化的变分消息传递将范围扩展到近似贝叶斯推理。
。。。。。。。。。