关于belief propagation。这是machine learning的泰斗J. Pearl的最重要的贡献。对于统计学来说,它最重要的意义就是在于提出了一种很有效的求解条件边缘概率(conditional marginal probability)的方法。说的有点晦涩了,其实所谓求解条件边缘概率,通俗地说,就是已知某些条件的情况下,推导另外某些事件发生的概率。
如果涉及的因素只有那么几个,一个学过概率论的大学生就可以使用简单的概率公式计算出来。可是,在现实世界中有成千上万的因素,它们相互联系,如果按照传统方法,就要对数以千计的变量进行积分。考虑到运算量对于变量个数以指数增长,因此这么做实际上根本没法算的。虽然,后来人们提出了蒙特卡罗(Monte Carlo)积分,但是对于拥有数以千计变量的复杂系统,仍然可以说是computationally prohibitive。
这个困难一直阻碍着统计推断方法在大规模系统中的应用。Belief propagation出来之后,情况才发生了转变。J. Pearl在他的书中分析说,人们在头脑中经常进行各种各样的推断,可是人在头脑里面发生了什么事情呢:穷举所有未知变量的可能状态进行积分(Traditional method)?还是随即产生各种状态求均值(Monte Carlo Integral),看来都不make sense。J. Pearl认为,虽然影响世界的因素繁多,但是每个因素实际上只与少数几个因素相关,这就构成了一个推断网络。在machine learning里面,这样的网络有两种:Bayesian Network,反映的是因果推断关系(就是说,相互联系的因素中,其中一个是因,另外一个是果),以及Markov Network, 反映的是相互影响的关系(两个因素互为因果,其变化相互影响)。根据这种建模方式,J.Pearl提出把inference局部化和分布化,把全局的积分变成局部的消息传递。网络中的每个节点通过和邻近节点交换信息对自身的概率状况进行评估。通过这种方式,使得计算量从指数增长变成近似的线性增长,从而使得统计推断能在复杂系统中被应用。
数学上可以证明,对于有向无环的Bayesian Network,可以证明,通过BP得到的解和严格的积分计算得到的结果是一致的。这时的BP只是利用因素联系的局部性来简化计算,并把计算过程分散到各个节点。对于无向而且到处是环的markov network,J.Pearl指出,这种传播过程是可能导致不稳定的。某些消息可能在环状的传播过程中无限加强,从而导致整个系统发散或者偏离。但是实际经验表明,对于大部分问题,BP在带环的系统中依然工作良好。很多人对这个现象进行了研究,对于某些特例给出了初步的解释,但是关于Loopy BP的稳定性和收敛性问题,离理论上的最终解决,还有很长的路要走。
在computer vision领域,MIT的著名教授W.T. Freeman是BP方法的积极倡导者,他大量使用markov random field和belief propagation对图像进行建模,在很多应用领域取得了不错的结果。
我们用图像能量函数 : 来表示对各个像素点赋标签值(labeling)的质量(quality)。能量函数的值越小表示效果越好。BP就是用来求解最小化能量函数的一种优化算法。
式(1) 中N为4邻域系统的网格图像,V(fp,fq)是定义两个相邻像素点p,q为标签(label)fp,fq的代价,代表平滑项,Dp(fp)是定义像素点p为标签fp的代价,代表数据项。
BP算法是通过消息传递(message passing)来实现的。
定义 为在第t次迭代中节点p传递给相邻节点q的消息(message)。每个message都是个nlabel维向量。其中nlebel表示的是label的个数。
中每个元素的计算如下:
N(p)表示p的邻域,s是p的邻域中不包括q的点。
值得注意的是,在式(2) 的计算中,对所有可能的fq(在灰度图像中为0,1,...,nlabel-1(255)),分别计算在每个fp下的消息值,然后取所有由fp求的消息中最小的赋给相应的(fq)。计算时需要两重循环,即fq=0:nlabel-1;fp=0:nlabel-1;时间复杂度为O(k^2),k=nlabel。
在t次迭代后对每个节点计算置信向量(belief vector)。每个置信向量也是nlabel维的。计算如下:
最后对每个节点q,在所有bq(fq)中找出使bq最小的分量对应的fq*。fq*即为该q点所要求的label值。
整个消息传递在标准BP算法下的时间复杂度为O(n*k^2*t)。n表示像素点的个数,k表示label的个数,t表示迭代次数。
由于标准BP算法在图像恢复之类的多像素点,多label值的问题的应用中时间复杂度太大,不满足计算时间的要求。因此,提出了基于初级视觉问题的有效BP算法(Efficient Belief Propagation for Early Vision[4] )。
该算法从3个方面入手来加速求解: