信念传播(Belief Propagation)是因子图上的消息传递。本文给出有限离散变量上的和积算法,用来计算式 (1) 的单变量边缘。

因子分解

设 为有限集。每个 对应随机变量 ,取值于有限集 。赋值 属于 。

设 为有限的因子指标集。每个 有作用域 ,以及

表示 在 上的限制。令

并设 。联合分布定义为

目标是对每个 与 计算

表示除坐标 以外的赋值,求和范围是 。

因子图

因子图是二分图 ,

变量节点的邻域是 ,因子节点的邻域是 。

消息

每条边 上有两个函数

变量到因子的更新为

乘积的指标集是 ,其中不含接收方 。若 ,则乘积为空,值定义为 。

因子到变量的更新为

是自变量,求和时保持不变。 是 在 上的坐标,求和范围是

设 ,则

并且每个被加项里的 在坐标 上等于该固定的 。 时,求和仅含空赋值这一项,乘积为 ,因此 。被加项个数为 。

式 (2) 把到达变量 的其他因子消息相乘,对应式 (1) 中因子的乘积。式 (3) 先乘上 ,再对其余坐标求和,使结果只是 上的函数。

信念

式 (4) 的乘积取遍 。发往某个 的式 (2) 不含 ,信念则把这条消息乘回来。当

时,定义

把任意一条入消息乘以正常数,分子与分母同乘该常数, 不变。

无环与含环

设 是树,并任取一个根。更新可以排成这样的顺序:先由远及近计算所有指向根的消息,再由近及远计算所有离开根的消息。计算一条消息时,式 (2) 或式 (3) 右端用到的消息都已经得到。叶变量发往唯一因子的消息是空乘积,叶因子发往唯一变量的消息等于该因子。每条有向消息计算一次后,

含环时,先令所有消息为恒等于 的函数,再反复执行式 (2) 与式 (3)。这个迭代称为 loopy belief propagation。迭代可能发散或振荡。收敛时的极限是更新映射的不动点,依赖于初始消息和更新顺序;这个不动点可以不等于 。上一节的等式用到了 无环。