Max-Product Loopy Belief Propagation

关于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对图像进行建模,在很多应用领域取得了不错的结果。

  • 标准BP(Standard Belief Propagation ) [4]

我们用图像能量函数 : 来表示对各个像素点赋标签值(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个方面入手来加速求解:

  1. 使用初级视觉问题中的V(fp,fq) 来简少计算一个message所花的时间。由O(k^2)减少为O(k)。
  2. 对于强连通图,将所有节点分为两类,每次迭代只计算一类节点发出的消息,这样减少n的个数。
  3. 使用粗细网格划分,使每个级别的网格中各点消息的初值取得接近稳定点,加速收敛。使迭代次数t大为减少。

Max-Product Loopy Belief Propagation相关推荐

  1. Ground Segmentation based on Loopy Belief Propagation for Sparse 3D Point Clouds (论文速读)

    欢迎访问我的个人博客:zengzeyu.com Abstract 在使用3D激光雷达进行局部环境感知任务中,地面点分割是中重要的预处理任务,并且在起伏不平和倾斜的非结构化环境中非常具有挑战性.为了解决 ...

  2. Max-Product Loopy Belief Propagation for Solving MRF's energy function minimization

    本文转自http://blog.sina.com.cn/s/blog_4dfdfdc30100q2el.html 关于belief propagation.这是machine learning的泰斗J ...

  3. Magento: 单产品(product)或者当前类别(category)最大和最小价格 Min/Max Product Price in a Category...

    1. 当前类别最大最小价格: $minPrice = Mage::getModel('catalog/product')->getCollection()->addStoreFilter( ...

  4. 概率图模型推断之Belief Propagation

    初步打算把概率图模型中推断方法都介绍一下,包括Belief Propagation,变分方法,MCMC,以及像是Graph cut也做一些说明. 关于Belief Propagation是什么? Be ...

  5. 置信度传播算法(Belief Propagation)

    基础知识 条件概率(Conditional Probability) 相互独立时,p(A | B) = p(A) 贝叶斯规则 贝叶斯网络(Bayesian Network)定了一个独立的结构:一个节点 ...

  6. Efficient Belief Propagation for Early Vision 论文翻译 对于早期视觉问题的高效信念传播

    Efficient Belief Propagation for Early Vision 对于早期视觉问题的高效信念传播 (一些数学符号不标准,需要对照原论文阅读) 摘要 马尔可夫随机场模型为立体. ...

  7. 基于置信传播(BP,Belief Propagation)的立体匹配算法

    简介 基于置信传播的立体匹配算法是一种经典的全局立体匹配算法,其主要思想是在立体匹配过程中引入置信度的概念,置信度表示相邻节点的不同视差标记的可信度,通过一定迭代次数的消息迭代传播更新后,全局能量函数 ...

  8. 这 725 个机器学习术语表,太全了!

    下面是几位机器学习权威专家汇总的725个机器学习术语表,非常全面了,值得收藏! 英文术语 中文翻译 0-1 Loss Function 0-1损失函数 Accept-Reject Sampling M ...

  9. 这725个机器学习术语表,太全了!

    大家好,我是阳哥 这是几位机器学习权威专家汇总的725个机器学习术语表,非常全面了,值得收藏! 英文术语 中文翻译 0-1 Loss Function 0-1损失函数 Accept-Reject Sa ...

最新文章

  1. 图片的奇怪Cache_MISS原因!
  2. 《智源社区周刊:预训练模型》第2期:Facebook用“预微调”改进预训练性能、再议GPT-3中的东方主义偏见...
  3. 2017.4.7 e.toString() 与 e.getMessage()的区别
  4. EXCEL数字前补零且转换成文本型
  5. Nacos注册服务都注册在public空间下
  6. java面试题十四 基本类型的默认值
  7. java resultset 为空,ResultSet为空的有关问题
  8. .NET Core中使用Dapper操作Oracle存储过程最佳实践
  9. 用properties写的一个程序运行次数计数的程序代码,超过次数提示注册。
  10. ASP.NET的CreateUserWizard
  11. [转]SQL2008关于c001f011的错误解决办法
  12. tomcat stdout文件快速增长原因_Tomcat下载安装及配置
  13. ios11修改微信步数_网页一键就能修改微信步数?这个网站你值得看下
  14. iOS 封装Healthkit
  15. 办公必备:4个在线文档格式转换网站
  16. hao360恶意篡改IE首页——修复方法
  17. php socket http,php 利用socket发送HTTP请求
  18. 2009年最值得注意炒作题材
  19. 《踏踏实实学英语》读书笔记
  20. 硬盘安装工具cgi3.2_笔记本旧硬盘改造移动硬盘,满足媳妇办公存储需求

热门文章

  1. 微信引流专家 v1.1.2.1
  2. 蒙特卡洛原理及实例(附Matlab代码)
  3. windows与ipad互联传文件
  4. 12306 售票网站新版验证码识别对抗
  5. windows server 2016磁盘安全与管理_磁盘管理工具哪一款好用?
  6. 蓝牙芯片排行_7月TWS硅麦出货量排行榜出炉
  7. swift之网络请求框架Alamofire
  8. 用计算机弹歌曲想起你了,抖音每当我想起你在这秋风里是什么歌
  9. 车牌号正则表达式-普通车和新能源车
  10. TCP/IP网络编程_第6章基于UDP的服务器端/客户端