标签:
概率图的一个重要作用是进行推理,针对某个随机变量,告诉我们它到底有没有可能,有多大可能发生。之前在representation相关的内容中,我们更多的关心如何利用概率图减少联合分布的计算量。inference相关的章节就是要介绍如何从联合概率中获得单个随机变量的概率。
对于给定的联合分布函数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取值有关的函数。
在有了这样的规则以及分布表达后,查询某个变量的概率实际上是非常简单的事情。
对于一个如图所示的马尔科夫网,我们希望对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