基于概率模型定义的联合概率分布,我们能对目标变量的边际分布(marginal distribution)或以某些可观测变量为条件分布进行推断。条件分布我们已经接触很多,例如在隐马尔可夫模型中要估算观测序列
x
x
在给定参数下的条件概率分布。边际分布则是指对无关变量求和或积分后得到结果。例如在马尔可夫网中,变量的联合分布被表示成极大团的势函数乘积,于是,给定参数
θ
θ
求解某个变量
x
x
的分布,就变成对联合分布中其他无关变量进行积分的过程,这称为“边集化”(marginalization)。
对概率图模型,还需确定具体分布的参数,这称为参数估计或参数学习问题,通常使用极大似然估计或最大后验概率估计求解。但若将参数视为待推测的变量,则参数估计过程和推断十分相似,可以“吸收”到推断问题中。因此,下面我们只讨论概率图模型的推断方法。
具体来说,假设图模型所对应的变量集能分为
xE
x
E
和
xF
x
F
两个不相交的变量集,推断问题的目标就是计算边际概率
P(xF)
P
(
x
F
)
或条件概率
P(xF|xE)
P
(
x
F
|
x
E
)
。由条件概率定义有
其中联合概率 P(xE,xF) P ( x E , x F ) 可基于概率图模型获得,因此,推断问题的关键就是如何高效地计算边际分布,即
概率图模型的推断方法大致可分为两类。第一类是精确推断方法,希望能计算出目标变量的边际分布或条件分布的精确值;遗憾的是,一般情形下,此类算法的计算复杂度随着极大团规模的增长呈指数增长,使用范围有限。第二类是近似推断方法,希望在较低的时间复杂度下获得原问题的近似解;此类方法在现实任务中常用。本节介绍两种代表性的精确推断方法,下一节介绍近似推断方法。
1 变量消去
精确推断的实质是一类动态规划算法,它利用图模型所描述的条件独立性来削减计算目标概率值所需的计算变量。变量消去法是最直观的精确推断算法,也是构建其他精确推断算法的基础。
我们先以图7(a)中的有向图模型为例来介绍工作流程。
图7 变量消去法及其对应的消息传递过程
假定推断目标是计算边际概率
P(x5)
P
(
x
5
)
。显然,为了完成此目标,只需通过加法消去变量
{x1,x2,x3,x4}
{
x
1
,
x
2
,
x
3
,
x
4
}
,即
不难发现,若采用 {x1,x2,x4,x3} { x 1 , x 2 , x 4 , x 3 } 的顺序计算加法,则有
其中 mij(xj) m i j ( x j ) 是求加过程的中间结果,下标 i i 表示此项是对求加的结果,下标 j j 表示此项中剩下的其他变量。显然,是关于 xj x j 的函数。不断执行此过程得
显然,最后的 m35 m 35 是关于 x5 x 5 的函数,仅与变量 x5 x 5 的取值有关。
事实上,上述方法对无向图模型同样适用。不妨忽略图7(a)中的箭头,将其看作一个无向图模型,有
其中 Z Z 为规范化因子。边际分布可以这样计算:
显然,通过利用乘法对加法的分配律,变量消去法把多个变量的积的求和问题,转化为对部分变量交替进行求积与求和的问题。这种转化使得每次的求和与求积运算限制在局部,仅与部分变量有关,从而简化了计算。
变量消去法有一个明显的缺点:若需要计算多个边际分布,重复使用变量消去将会造成大量的冗余计算。例如在图7(a)的贝叶斯网络上,假定在计算 P(x5) P ( x 5 ) 之外还希望计算 P(x4) P ( x 4 ) ,若采用 {x1,x2,x5,x3} { x 1 , x 2 , x 5 , x 3 } 的顺序,则 m12(x2) m 12 ( x 2 ) 和 m23(x3) m 23 ( x 3 ) 的计算是重复的。
2 信念传播
信念传播(Belief Propagation)算法将变量消去法中的求和操作看作一个消息传递过程,较好地解决了求解多个边际分布时的重复计算问题。具体来说,变量消去法通过求和操作
消去变量 xi x i ,其中 n(i) n ( i ) 表示节点 xi x i 的邻接节点。在信念传播算法中,这个操作被看作从 xi x i 向 xj x j 传递了一个消息 mij(xj) m i j ( x j ) 。这样,式(15)和式(16)所描述的变量消去过程就能描述为图7(b)所示的消息传递过程。不难发现,每次消息传递操作仅与变量 xi x i 及其邻接节点直接相关,换言之,消息传递相关的计算被限制在图的局部进行。
在信念传播算法中,一个节点仅在收到来自其他所有节点的消息后才能向另一个节点发送消息,且节点的边际分布正比于它所接收的消息的乘积,即
例如在图7(b)中,节点 x3 x 3 要向 x5 x 5 发送消息,必须事先收到来自节点 x2 x 2 和 x4 x 4 的消息,且传递到 x5 x 5 的消息 m35(x5) m 35 ( x 5 ) 恰为概率 P(x5) P ( x 5 ) 。
若图结构中没有环,则信念传播算法经过两个步骤即可完成所有消息传递,进而能计算所有变量上的边际分布:
·指定一个根节点,从所有叶节点开始向根节点传递消息,知道根节点收到所有邻接节点的消息;
·从根节点开始向叶节点传递消息,直到所有叶节点均收到消息。
例如在图7(a)中,令 x1 x 1 为根节点,则 x4 x 4 和 x5 x 5 为叶节点。以上两步消息传递的过程如图8所示。此时图的每条边上都有方向不同的两条消息,基于这些消息和式(20)即可获得所有变量的边际概率。
图8 信念传播算法图示