信念传播(Belief Propagation)是因子图上的消息传递。本文给出有限离散变量上的和积算法,用来计算式 (1) 的单变量边缘。
因子分解
设 为有限集。每个 对应随机变量 ,取值于有限集 。赋值 属于 。
设 为有限的因子指标集。每个 有作用域 ,以及
表示 在 上的限制。令
并设 。联合分布定义为
目标是对每个 与 计算
表示除坐标 以外的赋值,求和范围是 。
因子图
因子图是二分图 ,
变量节点的邻域是 ,因子节点的邻域是 。
消息
每条边 上有两个函数
变量到因子的更新为
乘积的指标集是 ,其中不含接收方 。若 ,则乘积为空,值定义为 。
因子到变量的更新为
是自变量,求和时保持不变。 是 在 上的坐标,求和范围是
设 ,则
并且每个被加项里的 在坐标 上等于该固定的 。 时,求和仅含空赋值这一项,乘积为 ,因此 。被加项个数为 。
式 (2) 把到达变量 的其他因子消息相乘,对应式 (1) 中因子的乘积。式 (3) 先乘上 ,再对其余坐标求和,使结果只是 上的函数。
信念
式 (4) 的乘积取遍 。发往某个 的式 (2) 不含 ,信念则把这条消息乘回来。当
时,定义
把任意一条入消息乘以正常数,分子与分母同乘该常数, 不变。
无环与含环
设 是树,并任取一个根。更新可以排成这样的顺序:先由远及近计算所有指向根的消息,再由近及远计算所有离开根的消息。计算一条消息时,式 (2) 或式 (3) 右端用到的消息都已经得到。叶变量发往唯一因子的消息是空乘积,叶因子发往唯一变量的消息等于该因子。每条有向消息计算一次后,
含环时,先令所有消息为恒等于 的函数,再反复执行式 (2) 与式 (3)。这个迭代称为 loopy belief propagation。迭代可能发散或振荡。收敛时的极限是更新映射的不动点,依赖于初始消息和更新顺序;这个不动点可以不等于 。上一节的等式用到了 无环。