9 概率图模型(四):道德图、因子图

5 Moral Graph & Factor Graph

在这一小节中,我们将要介绍两种特殊的概率结构,也就是Moral Graph 和Factor Graph

5.1 道德图(Moral Graph)

首先我们需要知道,为什么要有Moral Graph 的存在?Moral Graph 存在的意义就是将有向图转化为无向图来研究。因为无向图比有向图更加的Generalize 一些。在概率图中,我们可以分为贝叶斯网络(有向图) 和马尔可夫网络(无向图)。
无向图可以表示为: p ( x ) = 1 z ∏ i = 1 k ϕ c i ( x c i ) \left. \begin{array} { l } { p ( x ) = \frac { 1 } { z } \prod _ { i = 1 } ^ { k } \phi _ { c _ { i } } ( x _ { c _ { i } } ) } \end{array} \right. p(x)=z1i=1kϕci(xci)
有向图可以表示为: p ( x ) = ∏ i = 1 p p ( x i ∣ x p a ( i ) ) \left. \begin{array} { l } { p ( x ) = \prod _ { i = 1 } ^ { p } p ( x _ { i } | x _ { p a ( i ) } ) } \end{array} \right. p(x)=i=1pp(xixpa(i))
其中, ϕ c i ϕ_{c_i} ϕci 代表的是最大团的意思。通过道德图,我们可以有效的将有向图转换为无向图。

  1. 链式网络:
    在这里插入图片描述
    其中, p ( a , b , c ) = p ( a ) p ( b ∣ a ) p ( c ∣ b ) p(a,b,c) = p(a)p(b|a)p(c|b) p(a,b,c)=p(a)p(ba)p(cb)。如果,把有向图转换成有向图是一件非常简单的事情,首先把所有的线条换成直线。由于在无向图中,我们考虑的是最大团,所以 p ( a ) p ( b ∣ a ) = φ ( a , b ) p(a)p(b|a) = φ(a,b) p(a)p(ba)=φ(a,b) p ( c ∣ b ) = φ ( b , c ) p(c|b) = φ(b,c) p(cb)=φ(b,c)。这个的转换是非常的简单了。
  2. Tail to Tail 的图
    在这里插入图片描述
    其中, p ( a , b , c ) = p ( a ) p ( b ∣ a ) p ( c ∣ a ) p(a,b,c) = p(a)p(b|a)p(c|a) p(a,b,c)=p(a)p(ba)p(ca)。还是按照一样的套路,首先把所有的有向箭头改成直线。那么我们就可以得到 p ( a ) p ( b ∣ a ) = ϕ ( a , b ) , p ( c ∣ a ) = ϕ ( a ∣ c ) p(a)p(b|a) = ϕ(a,b),p(c|a) = ϕ(a|c) p(a)p(ba)=ϕ(ab)p(ca)=ϕ(ac)。其中{ a , c a,c a,c} 和{ b , c b,c b,c} 是分别属于两个团。这个也比较的简单,但是Head to Head 的转换就有点不一样了。
  3. Head to Head
    在这里插入图片描述
    同样我们使用一样的分析思路来看这个问题, p ( a , b , c ) = p ( a ) p ( b ) p ( c ∣ a , b ) p(a,b,c) = p(a)p(b)p(c|a,b) p(a,b,c)=p(a)p(b)p(ca,b)。我们进行拆解的话,只能令 p ( a ) p ( b ) p ( c ∣ a ; b ) = φ ( a , b , c ) p(a)p(b)p(c|a; b) = φ(a,b,c) p(a)p(b)p(ca;b)=φ(a,b,c),不然再也找不到其他的拆解方法。但是,如果简单的将模型中所有的有向箭头改成直线得到的并不是一个团。因为“团” 的概念的要求,团里面的元素都要求是两两相互连接的。所以,我们需要进行改进,将Head to Head 的无向图形式改进为:
    在这里插入图片描述
    那么,将Head to Head 的有向图转换为无向图的过程可以被我们描述为:
    对于 x i ∈ G x_i \in G xiG,将 p a r e n t ( x i ) parent(x_i) parent(xi) 的两个父亲节点连接,然后将G 中所有的有向边替换成无向边。下面我们举一个例子:

在这里插入图片描述
而我们将有向图转换成无向图之后,有什么好处吗?也就是在判断条件独立性的时候,有时图形非常复杂的时候。我们在有向图中很难看出来,而在无向图中却可以很简单的得到我们想要的结果。也就是在这里插入图片描述

5.2 因子图(Factor Graph)

在上一小节中,我们介绍了道德图(Moral Graph),它的主要作用是将有向图转换为无向图。我们考虑的都是树结构,但是在Head to Head 结构中,会引入环的结构。但是,在我们的Belief Propagation(BP) 算法中,只能对树进行分解。所以,这里我们就引入了因子图。
因子图主要发挥两个作用:

  1. 去环,也就是消除无向图中的环结构;
  2. 使算法变得更加的简洁,简化计算。

如图二表达的那样,他的有向图和无向图的联合概率可以分别表达为:
p ( a , b , c ) = p ( a ) p ( b ∣ a ) p ( c ∣ a ) p(a,b, c) = p(a)p(b|a)p(c|a) p(a,b,c)=p(a)p(ba)p(ca)
p ( a , b , c ) = 1 Z ϕ ( a , b ) ϕ ( a , c ) p(a, b,c) =\frac 1Z ϕ(a, b)ϕ(a, c) p(a,b,c)=Z1ϕ(a,b)ϕ(a,c)
那什么是因子图分解呢?公式表达可以被我们表示为: p ( x ) = ∏ s p ( x S ) p(x)=\prod_sp(x_S) p(x)=sp(xS)

其中,S 是图的节点子集, X S X_S XS 为对应的X 的子集,也就是X 的随机变量的子集。那么对于一个如图4 所示的有环无向图,我们怎么进行因子图分解呢?
首先进行第一种分解,如下图所示:
在这里插入图片描述
这时可以被我们描述为, f = f ( a , b , c ) f = f(a, b,c) f=f(a,b,c)。或者我们也可以进行更细的分解。如下图所示:
在这里插入图片描述
这个分解的结果可以被我们表示为:
p ( x ) = f 1 ( a , b ) f 2 ( a , c ) f 3 ( b , c ) p(x) = f_1(a, b)f_2(a, c)f_3(b, c) p(x)=f1(a,b)f2(a,c)f3(b,c)
不仅是可以在两个节点之间插入关系,同时也可以对于单个节点引入函数。
在这里插入图片描述
那么这个分解结果可以被我们表示为:
p ( x ) = f 1 ( a , b ) f 2 ( a , c ) f 3 ( b , c ) f a ( a ) f b ( b ) p(x) = f_1(a, b)f_2(a, c)f_3(b, c)f_a(a)f_b(b) p(x)=f1(a,b)f2(a,c)f3(b,c)fa(a)fb(b)
实际上,就可以看成是对因式分解的进一步分解。这样我们就可以成功的消除环结构。如下图所示:
在这里插入图片描述
所以,大家仔细一想就知道了因子图存在的意义了,它可以有效的消除环结构,通过一个重构的方式,重建出树的结构。这样可以有效的帮助我们使用Belief Propagation 中的变量消除法等方法。从上面可以看出概率图的分解方式不一样,对应的因子图也就不一致。

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值