首页 > 编程知识 正文

马尔可夫随机场模型,马尔科夫随机场 像分类

时间:2023-05-06 19:32:46 阅读:242721 作者:2480

之前试图学过Coursera上讲马尔科夫随机场的课程,发现听不太懂,原因是那家伙一上来简单介绍一下马尔科夫随机场是什么样子的就开始Graphcut了。但是到底什么是马尔科夫随机场?为什么马尔科夫随机场可以那样去定义和推导?这些都没有怎么讲清楚,于是听了个稀里糊涂的。这次系统学了一下概率图,对这个问题有了比较清晰的认识,这里简单谈一下自己的理解。

如果没有另加说明,为了叙述方便,以下的变量都是二值0-1的离散变量。

一、概率图

所谓概率图,就是把概率关系用图表示出来。所谓概率关系,其实就是指的独立性。这是什么意思呢?举个例子,比如我有两个变量X1和X2,这两个变量是独立的,用图描述出来就是没有任何连接的两个单点。而如果这两个点是有关系的(不独立),那么中间就有一条边。为什么要这样去搞呢?因为用图去描述非常的清晰,独立性一目了然,而且非常简洁。比如要描述刚才的两个变量独立,我们要给出X1,X2的联合概率分布,即P(X1=i,X2=j),如果是二值的话,则需要4个式子去描述(由于相加等于1,实际上是3个参数)。但是用概率图的话,画了两个单点就表示这两个点独立,那么只需要单独给定P(X1=i)和P(X2=j)就可以了,需要2个参数。

可能你会觉得例子太过抽象,还是不太理解为什么要这么做,那么举一个简单的例子。比如我想推断一下今天北京天气晴朗且伦敦天气晴朗的概率。首先从常识我们大致可以推断出,这两个事件应该是独立的,那么我们的概率图就可以画成两个单点。于是我们只要分别指定北京天气晴朗和伦敦天气晴朗的概率就可以了,而不需要考虑他们的联合分布。可能你会觉得这个例子说明不了问题,因为即使不用概率图,我也知道只需要把单独的概率乘起来就可以了。这是因为这个例子太过简单了(为了说明核心思想),实际问题中往往涉及很多节点和很多值的变量,那个时候概率图的优势就非常明显了。试想一下,假设我们有A-Z共24个变量,这其中有很多很多的独立关系,你能保证用非概率图的方法自己不乱套吗?但是如果画成图的话,这个关系一目了然,非常清晰。

在概率图中有一个非常重要的问题,就是概率图描述的图和原问题到底是不是等价的?解决了这个问题我们才可以放心大胆地使用它。通过人们的研究,找出了概率图和它能描述的概率关系之间的关系,这个会在下一节针对马尔科夫随机场详细说明。

除了概率关系(独立性),我们还需要把概率放上去,就是类似于P(X1=1,X2=1,X3=1)=0.1 这样的概率放到图里面去,这样的话,我们就可以完全用概率图来做了(前面的例子里面实际是有这一步的,只是没有特意强调)。可能你会说,如果加上这个概率描述的话,不就和原先没什么区别了吗?因为原先也就是一堆这样的概率值呀。需要注意的是,这里面我们要添加的概率值是不一样的。之前由于我们没有事先确定独立性关系,因此这种概率需要把所有变量都囊括进来,比如有是三个变量,我们就需要把P(X1,X2,X3)都列出来共8种情况,我们需要保留7个独立的参数来描述它。   这里假设我们知道了X1,X2,X3是相互独立的,那么我们可以先用图来表示出来这个概率关系(就是他们三个没有直接的边相连),然后再用简化的概率去描述,即分别用三个概率P(X1),P(X2),P(X3)去描述,只需要3个独立的参数就可以了。

通过上面的例子我们可以看出来,概率图的建模分为两个步骤。第一,用概率图的结构来描述概率关系。第二,加入概率值进行完整描述。

二、马尔科夫随机场

(摘自古槿老师概率图课程ppt)

为什么说了一堆概率图呢?是因为马尔科夫随机场其实就是一种概率图,叫做无向图,所谓无向图就是用没有方向的线连接节点构成的图。注意我们概率图的目的是为了描述概率关系,在马尔科夫随机场中,有线相连的两个节点就是不独立的。但是没有线相连的节点一定是独立的吗?答案是否定的。只要两个节点之间有一条通路,这两个节点就是不独立的(间接有关系)。 仔细想一下,如果节点有通路就不独立的话,那岂不是马尔科夫随机场中所有的节点都不是独立的了?这样的话,比如我要求某个节点表现出0的概率,那么我就需要确定所有其他变量对它造成的影响,这实在是太不简洁了。因此在马尔科夫场中还有一个性质,就是如果一个点的直接相邻节点都确定了的话,那么这个点的概率就和所有非相邻节点都独立了,这也就是所谓的马尔科夫性。也就是说,假如我已知X12和X21的取值的话,那么X11的取值仅和他们有关,与其余的所有节点都无关。

到了这里我们完成了第一步:描述独立关系,实际也就是把概率图的骨架结构确定了。第二步我们需要把概率值加入。

所谓的概率值,用最最最一般的方式描述就是完整的联合概率分布,即P(X11=i,.....,X34=p) = c. 这样的概率。但是这时候我们通过骨架描述已经确定了独立关系,就有一些独特的性质野性的白猫。下面就是马尔科夫随机场最最重要的一个地方了。

看上面的随机场,假设我们想要确定X23=1的概率,P(X23=1),根据马尔科夫性,只要我们确定了X13,X22,X24和X33,那这个概率就唯一确定了。也就是说,我们需要确定P(X23,X13,X22,X24,X33)的联合概率分布。这个式子还是太庞大了,于是我们想,它能不能拆成再简洁一点的式子?这里,根据一些理论(后面会提到),我们只需要考虑两种关系就好了,分别叫做unary potential(一元变量)和binary potential(二元变量)。这也就是说:


其中的Pi表示连乘,也就是把一元变量和二元变量都乘起来。这里面Z是一个归一化因子,就是把所有的概率加起来(因为概率值之和应该等于1)。这样相当于把概率泛化了,因为上面的P(Xi),P(Xi,Xj)其实不是概率了(把他们乘起来再归一化后才是)。那么问题来了,为什么只需要这两种变量描述联合概率?为什么我们不需要考虑P(Xi,Xj,Xk)这样的关系呢?这里就涉及所谓图论的知识了,不加证明地进行引用(一般书里这么说的话就是作者也不太知道怎么证)。

上面的随机场其实就是一个图,包括节点和边。这个理论是说,在计算联合概率分布的时候,我们只需要考虑所有的完全连接子图的关系就可以了。什么叫完全连接子图呢?指的就是完全相连的节点集合。比如一个节点是一个完全邻接子图,两个节点只需要把他们连接起来就是一个完全邻接子图了,而三个节点则需要两两相连,则需要3条边,四个节点就需要6条边了。也就是说,我们只需要对所有的完全邻接子图分配一个关系P(Xi,...,Xj)即可。

再来看一下上面的随机场。首先,所有的单点都是一个完全邻接子图,因此我们有P(Xi);所有的两个点也构成了完全邻接子图,因此有P(Xi,Xj)。但是,任意三个节点都不是完全连接的,所以到二元变量就打住了。这也就有了上面的分解。所谓的分解定理告诉我们,这样的分解是没问题的。另外,由于Z是把所有的联合概率可能取值加在一起,它对所有的Xi的取值都是一样的,因此在计算P(Xi,...,Xj)的时候不需要考虑它。去掉Z后,上面的概率还是有些不够实用,因为它居然是连乘起来的!这里是一个比较常用的处理方法,就是取负对数。

其中N表示的是相邻。到此为止,终于走到了MRF中最常用的能量函数的形式。下面将有两篇博文分别谈谈MRF的解法(Graph Cuts)以及这篇博文里用到的知识与Deep Learning之间的关系。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。