您的位置:首页 > 运维架构

关于置信传播算法(Belief Propagation)的一些理解与记录

2016-07-13 11:33 1301 查看
       最近在研究置信传播算法,想实现消息传播的过程,于是各种找资料,但网上都是千篇一律。每个人都有自己理解的和不理解的问题,经过不断地产生问题与解决问题,也算是有些收获,所以赶紧记录一下。第一次写博客,若有错误,还望指正!另,特别感谢GeekStuff的文章及对我的提问的及时回答,帮助了我很多,虽然我们并不认识!

贝叶斯定理

       贝叶斯定理是置信传播算法的基础。

       经典的数学物理问题,大部分都是适定问题:①解存在;②解唯一;③解的连续性依赖于定解条件。而贝叶斯定理完美地把问题的不确定性和已知的先验知识结合起来,把实际问题转化为概率论中的推理问题,寻找可能性最大的全局最优解。而且利用贝叶斯定理建立的模型,具有完整的数学推导,可以很灵活地把各种先验知识包含在模型中。

        求解贝叶斯网络的最终目标是:求出每个节点的边缘概率分布。使一个边缘概率分布取得最大值的变量xi,就是这个节点的最大后验概率解。贝叶斯网络图是有向图,其相连接的节点之间具有因果关系,也称为父子关系,要用条件概率表示它们之间的相互作用。

       


        其联合概率分布函数为:

       


马尔科夫随机场

       马尔科夫随机场是一种特殊的贝叶斯网络,网络中的节点满足马尔科夫性质:某个节点的概率分布特性只与其领域内的点有关,与领域外的点无关。在这种领域模型中,随机场中的每一个节点只与它直接相邻的节点有相互作用。

       马尔科夫随机场是一个无向图,其中的节点分为可观察节点(已知数据)yi和隐藏节点(未知量)xi,可观察节点与隐藏节点之间的相互作用因子用一个似然函数Φi(xi,yi)表示,两个相邻(有边连接)的隐藏节点之间的相互作用因子用势能量ψij(xi,xj)表示。

         一个马尔科夫随机场中所有节点的联合概率分布函数为:

       


        对于大多数较小的马尔科夫随机场,只要简单地对全概率公式采用求和或积分的方法,就可以求得每个隐藏点的边缘概率分布。但对于节点数很大的马尔科夫随机场,计算量以指数级增长。所以必须引入适当的计算方法,如置信传播算法

置信传播

        其主要思想是:对于马尔科夫随机场中的每一个节点,通过消息传播,把该节点的概率分布状态传递给相邻的节点,从而影响相邻节点的概率分布状态,经过一定次数的迭代,每个节点的概率分布将收敛于一个稳态。为了使用置信传播算法,在马尔科夫随机场中定义了两个概念:消息和置信度。

        消息更新规则:

       


        置信度计算:

       


     
用置信传播算法求出的某点的置信度,就是该点的边缘概率分布。虽然可能不是准确值,但至少是近似值。随着马尔科夫随机场的增大,计算量只以线性级增长。要使马尔科夫随机场边界点的信息最终能够到达另一个边界,理论上迭代次数应该为马尔科夫随机场两个边界之间的距离。计算量远小于暴力算法。

      


       消息的计算往往有先后关系,但在实际的网状马尔科夫随机场中,常常采用迭代式计算,即,先为每一个消息赋予初始值,计算的时候不用从起始节点沿着所有的边一层层地下去寻找边缘节点进行递归运算,而是随机找到某个点和它的邻居节点,计算它发送给邻居节点的消息,并计算邻居节点的置信度;然后再随机找到某个点,重复上面过程。每一次的迭代都使用上一次迭代后的值进行计算。这种迭代式运算法,方便利用计算机编程实现,且有利于并行运算,提高效率。

置信传播算法流程

        根据信息更新规则分类,置信传播算法分为:Max-product和Sum-product。

        对于Sum-product,算法流程如下:

        ① 初始化所有隐藏节点的似然函数Φi(xi,yi)、每对邻居节点的势能量ψij(xi,xj)和消息mij(xj),其中,似然函数和势函数的初始化依赖于对问题的理解。

       


        ②随机找到某个点和它的邻居节点,用消息更新规则计算该节点发送给其邻居节点的所有消息,然后再随机找到某个节点,重复这个过程,当所有消息都更新一遍之后即完成一次迭代。

       


        即,

       


        ③ 按照指定次数进行第②步的算法迭代,或判断消息是否收敛,若算法已经收敛,则开始计算每个节点的置信度。

       


        即,

       


        ④ 由置信度求出使得每个节点的边缘概率分布取得最大的变量。

       


以上内容中的部分内容、图片为参考GeekStuff的CSDN博客:置信度传播算法(Belief
Propagation)

其它参考资料:

Understanding Belief Propagation and itsGeneralizations

基于置信传播的立体匹配算法研究及实现
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息