转自:http://www.zhujun.me/d-separation-separation-d.html
一、引言
在贝叶斯网络的学习过程中,经常会遇到(D-Separation)D-分离这个概念,D-分离是寻找网络节点之间的条件独立性的一种方法或者说一种问题的简化处理的技巧。采用D-分离技术,在用贝叶斯网络进行预测,诊断推理等方面,可以提高计算速度,减少计算复杂性。
D-Separation是一种用来判断变量是否条件独立的图形化方法。相比于非图形化方法,D-Separation更加直观,且计算简单。对于一个DAG(有向无环图)E,D-Separation方法可以快速的判断出两个节点之间是否是条件独立的。
二、三种情况分析
首先可以看看以下三种简单情况下条件独立的情况(对应于PRML中8.2.1的Three example graphs):
Example One:tail-to-tail (节点C连接的是两个箭头的尾部,如图)
可知,
现在我们求 P(a,b),如果 P(a,b)=P(a)*P(b),则a和b是在c条件下独立分布的。分两种情况进行讨论:
(1)C值不作为观察点。令(1)式对c求积分,消去c值,考虑c是离散的情况,可得
可以看到,与 P(a,b)=P(a)*P(b)不等,所以a和b不是c条件独立的。
(2)C值作为观察点(即以C作为条件)。则可以知道C取某个c状态的概率为
可得a
Example Two:head-to-tail
可知,p(a,b,c)=p(a)*p(c|a)*p(b|c) (2)
同样分两种情况进行讨论:
(1)、c值不作为观察点。对(2)式(考虑c是离散的情况)积分可得:
可知,a和b不是c条件独立的。
(2)、c值作为观察点。则图模型表示为:
c
可知,a
Example Three:head-to-head
可知 p(a,b,c)=p(a)*p(b)*p(c|a,b) (3)
同理,分两种情况讨论:
(1)、c值不作为观察点。由于所有p(c|a,b)相加和=1,所以有(3)式消去c,可得 p(a,b)=p(a)*p(b),即a与b是条件独立的。
(2)、c值作为观察点。
所以有:
最后不能因式分解成p(a)*p(b)的形式,所以a与b不是c条件独立的。
三、总结
对于较为复杂的
(a)路径中存在某个节点
(b)路径中存在某个节点
如果
四、应用例子
根据D-Seperation分隔定理,我们可以很容易的判断是否是条件独立的。我们来看一个例子:
判断图中a与b是否在c条件下独立?a与b是否在f条件下独立?
图中可以看到
现在如果要判断