码迷,mamicode.com
首页 > 其他好文 > 详细

机器学习 —— 概率图模型(推理:变量消除)

时间:2016-01-17 21:33:36      阅读:854      评论:0      收藏:0      [点我收藏+]

标签:

  概率图的一个重要作用是进行推理,针对某个随机变量,告诉我们它到底有没有可能,有多大可能发生。之前在representation相关的内容中,我们更多的关心如何利用概率图减少联合分布的计算量。inference相关的章节就是要介绍如何从联合概率中获得单个随机变量的概率。

1.链状变量消除

  对于给定的联合分布函数P(A,B,C,D,E),如果想要知道P(E),只需要将A,B,C,D边际掉。假设P(E)可以有两种取值P(e1),P(e2),P(e1) = P(a1,b1,c1,d1,e1)+P(a2,b1,c1,d1,e1)...以此类推,最终可以得到P(e1)与P(e2)的值。在有概率图的情况下,我们可以对变量进行因式分解,因式分解有助于减少求和的次数。

  以如下图所示的链状无向图为例:

技术分享

  由马尔科夫图的团势分解定律可知,某个点的团仅与 其及其父节点有关,所以可以对上述联合概率进行因式分解。而仅 Φ(A,B)与A有关。把Φ(A,B)中的A边际掉,也就是T1(B1)=Φ(A1,B1)+Φ(A2,B1).T1(B2)=Φ(A1,B2)+Φ(A2,B2). 其结果相当于是一个仅与B取值有关的势函数。同理,这样已知进行下去可以得到仅与E取值有关的函数。

技术分享

  在有了这样的规则以及分布表达后,查询某个变量的概率实际上是非常简单的事情。

 

2.马尔科夫网的变量消除

  对于一个如图所示的马尔科夫网,我们希望对P(J)进行计算。

  技术分享

  P(C,D,I,G,S,L,J,H) = P(C)*P(C,D)*P(I)*P(DIG)*P(IS)*P(GL)*P(SLJ)*P(GJH)【这里的P应该表示为Φ】

  如果要计算P(J),那么需要将C,D,I,G,S,L,H全部边际掉。也就是Sum_C,D,I,G,S,L,H P(C,D,I,G,S,L,J,H) 

  Sum_C,D,I,G,S,L,H P(C,D,I,G,S,L,J,H) 

 =Sum_C,D,I,G,S,L,H  P(C)*P(C,D)*P(I)*P(DIG)*P(IS)*P(GL)*P(SLJ)*P(GJH)

 =Sum_C,D,I,G,S,L  P(C)*P(C,D)*P(I)*P(DIG)*P(IS)*P(GL)*P(SLJ)*Sum_H P(GJH)

 =Sum_C,D,I,G,S,L  P(C)*P(C,D)*P(DIG)*P(IS)*P(GL)*P(SLJ)*t(GJ)

 =Sum_C  P(C)*P(C,D)*Sum_D,I,G,S,L P(DIG)*P(IS)*P(GL)*P(SLJ)*t(GJ)

 =Sum_D,I,G,S,L P(DIG)*P(IS)*P(GL)*P(SLJ)*t1(GJ)*t2(D)

 =Sum_I,G,S,L P(IS)*P(GL)*P(SLJ)*t1(GJ) *Sum_D P(DIG)*t2(D)

 =Sum_I,G,S,L P(IS)*P(GL)*P(SLJ)*t1(GJ)*t3(GI)

 =Sum_G t3(GI)t1(GJ)P(GL) *Sum_ISL *P(SLJ)*P(IS)*t1(GJ)

 =Sum_ISL P(SLJ)*t4(IJL)

 按照此方法即可求出P(J).消除变量的顺序是任意的。

机器学习 —— 概率图模型(推理:变量消除)

标签:

原文地址:http://www.cnblogs.com/ironstark/p/5137754.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!