马尔可夫随机场

通俗解释

  马尔可夫随机场(Markov Random Field)可用于解决离散的优化问题,每个标签是独立的,非连续。通常包含两层意思:
  马尔可夫性质:它指的是一个随机变量序列按时间先后关系依次排开的时候,第N+1时刻的分布特性,与N时刻以前的随机变量的取值无关。拿天气来打个比方,如果我们假定天气是马尔可夫的,其意思就是我们假设今天的天气仅仅与昨天的天气存在概率上的关联,而与前天及前天以前的天气没有关系。其它如传染病和谣言的传播规律,就是马尔可夫的。
  随机场:当给每一个位置中按照某种分布随机赋予相空间的一个值之后,其全体就叫做随机场。我们不妨拿种地来打个比方。其中有两个概念:位置,相空间。“位置”好比是一亩亩农田;“相空间”好比是种的各种庄稼。我们可以给不同的地种上不同的庄稼,这就好比给随机场的每个“位置”赋予相空间里不同的值。所以,俗气点说,随机场就是在哪块地里种什么庄稼的事情。
  马尔可夫随机场:拿种地打比方,如果任何一块地里种的庄稼种类仅仅与它邻近的地里种的庄稼的种类有关,与其它地方的庄稼的种类无关,那么这些地里种的庄稼的集合,就是一个马尔可夫随机场。

马尔可夫随机场在视觉中的应用(多标签(labeling)问题)

  马尔可夫随机场解决labeling问题:当前状态只与上一个有关与上上及上上其它没有关系。在图像中可以理解为只与邻域有关系与邻域之外的其它像素相互独立。其在视觉中的应用主要有图像分割以及立体匹配:

  • 图像分割从聚类角度讲,就是一个图像聚类问题,把具有相同性质的像素点设置为一类。也就是一个标签分类问题,比如把一副图像分割成4类(也就是四个标签),那么每一个像素点必定属于这四类中的某一类,假设四类为1,2,3,4类,那么分割就是给每个像素点找一个标签类。(也就是每一个像素分成哪个标签,才会使整体分的更准确,也就是多标签分类问题)。
  • 立体匹配把每个视差层看作一个label,寻找最佳label使得全局代价最小(每个像素分配一个视差d,那每个像素如何确定d才能使整体匹配代价最小,也是一个能量最小化问题)。

马尔可夫随机场能量优化问题求解(给每个结点选择一个最优标签)

  多labeling问题求解目标是给每个节点分配一个最佳标签使得全局代价最小。
  接下来介绍MRF的一种求解方法:BP(Belief Propagation)方法:置信度传播方法利用结点与结点之间相互传递信息而更新当前整个MRF的标记状态,是基于MRF的一种近似计算。该算法是一种迭代的方法,可以解决概率图模型推断问题,而且所有信息的传播可以并行实现。经过多次迭代之后,所有结点的置信度不再发生变化,就称此时每一个结点的标记即为最优标记,MRF也达到了收敛状态。对于无环环路的MRF,BP算法可以收敛到其最优解。
  BP算法的两个关键过程:(1)通过加权乘积计算所有的局部消息;(2)节点之间概率消息在随机场中的传递。具体参考基于置信传播(BP,Belief Propagation)的立体匹配算法
  通俗解释如下:
  情景一:若干士兵排成一个队列,每个士兵只能与他相邻的士兵交流,问如何才能使每个士兵都知道总的士兵数?
在这里插入图片描述
  显然,对里面的任意一位士兵,它们只能与相邻的人交流信息。比如最左边的第一位向第二位传递:第二位左边只有1个。第二位向第三位传递:第三位左边有2个。一直依次传递到最右边最后一位,最后一位获得的信息是他的左边有5个人。
  但是这个时候只有最右边那个人知道总人数(5+1=6),还不能使其他人知道总人数。其他人只知道他的左边有几个人,右边有多少并不知道。
  这个时候最右边的人可以再依次往左边传递消息。比如最右边第一位告诉第二位说:第二位的右边只有他1个。依次传递,这样正向和反向各传递一遍,使得每个人都拥有两个信息,一个是该士兵的左边有L个人,一个是右边有R个人,总人数=L+R+1(加上他本人)。
在这里插入图片描述
  但是这样效率并不高?怎么快一点呢?我们可以同时两边各向相反的方向传递消息,因为这并不影响工作流程。
  对应下图,引入几个概念:先验信息P、外信息E以及后验信息A。在图中,先验信息P表示每个士兵自身的数字“1”;外信息E表示从其他相邻的士兵获取的信息,即每个士兵的外信息均为5;后验信息A = P + E,在这里表示队列的总人数,即为6.从图中可以看出,得到最后的结果是通过前向计算和后向计算得到的。
在这里插入图片描述
  情景二:若干士兵站好相应位置,有些士兵不止有2个相邻的士兵,可能有3个或更多。每个士兵只能与他相邻的士兵交流,问如何才能使每个士兵都知道总的士兵数?
在这里插入图片描述
  上图就可以和我们的BP算法联系起来了。传播的结果是使每个节点都可以获得其他节点传来的消息,从而计算出边缘函数。

  情景三:若干士兵排成环路,每个士兵只能与他相邻的士兵交流。问如何才能使每个士兵都知道总的士兵数?
在这里插入图片描述
  由于有环路的存在,如果用上述信息更新方法来确定总人数,将会导致无法确定何时中止信息的传递,因此也就无法确定士兵人数。

  • 30
    点赞
  • 83
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值