D分離——貝葉斯網絡
文章結尾有例題分析。
基本概念
D分離的概念來自於貝葉斯網絡,是用來尋找條件獨立的有效方法
條件獨立性:有節點A,B,C,如果有
\(P(A|B,C)=P(A|B)\)
即給定B(或者說B已確定)時,C的任何信息都不能改變A的可信度度量,則稱A和C是在B的條件下獨立的.
條件獨立性有什么用呢?
答案是幫助我們簡化貝葉斯網絡的聯合概率的計算
有向網絡連接中節點間的三個基本關系
由於貝葉斯網絡是一個DAG(有向無環圖)網絡。所以節點間的關系基本分為三類。
(1) 串行連接
在串行連接中A通過事件B影響C,同樣事件C也是用過事件B影響A。我們認為當證據B確定時,A、C條件獨立。
稱A和C被B節點D分離。
(2) 分叉連接
在分叉連接中A影響子節點,同樣子節點通過A影響其他子節點。我們認為當A已知時,其各個子節點相互獨立。稱B、C、...、Z被A節點D分離。
(3) 匯集連接(比較特殊)
在匯集連接中只有A節點未知時,我們才能認為其父節點們相互獨立。
值得需要注意的是,如果某節點影響了節點A或者節點A的后代節點,我們認為其父節點們並不相互獨立。

如上圖,事件e直接影響了A,那么B、C...、Z並不獨立

如上圖,事件e直接影響了A的后代結點E,那么B、C...、Z並不獨立。
D分離的條件
下面給出D分離的嚴格數學定義。
給定證據結點集𝛆,若對貝葉斯網絡中\(V_{i}, V_{j}\)結點 之間的每一個無向路徑都有某個結點\(V_{b}\)。若\(V_{b}\)存在以下三個屬性之一,那么該無向路徑被\(V_{b}\)阻塞。
- \(V_{b}\)在𝛆中,且路徑上的兩條弧都以\(V_{b}\)結尾。 (\(V_{b}\)相當於分叉連接中的A節點)
- \(V_{b}\)在𝛆中,且路徑上的一條弧以\(V_{b}\)為頭,一條弧以\(V_{b}\)結尾。 (\(V_{b}\)相當於串行連接中的B節點)
- \(V_{b}\)及其后代結點都不在𝛆中,且路徑上的兩條弧都以\(V_{b}\)為頭。(\(V_{b}\)相當於匯集連接中的A節點)
若貝葉斯網絡中\(V_{i}, V_{j}\)結點 之間的每一個無向路徑都被阻塞,那么我們稱\(V_{i}, V_{j}\)結點被證據集𝛆 D分離。
實例分析

例1:如上圖,利用D分離簡化聯合概率密度計算。
利用條件獨立性簡化計算前:
\(P(B,R,I,G,S,M)=P(M|B,R,I,G,S)*P(S|B,R,I,G)*P(G|B,R,I)*P(I|B,R)*P(R|B)*P(B)\)
利用條件獨立性簡化計算后:
\(P(B,R,I,G,S,M)=P(M|S)*P(S|I,G)*P(G)*P(I|B)*P(R|B)*P(B)\)
下面逐一分析:
\(P(M|B,R,I,G,S)\),可以被這樣解決,給定節點B,R,I,G,S(可視為證據結點),判斷它與那些節點條件獨立,然后按照條件獨立性化簡。
- M,S直接連接,必然有影響,不獨立。
- 給定S后,B,R,I,G.到M的所有無向路徑被S阻塞。按照條件獨立性\(P(M|B,R,I,G,S)=P(M|S)\)
\(P(S|B,R,I,G)\),同理。
- I,G和S直連,必然相互影響,不獨立。
- 給定I后,B,R到S的所有無向路徑被I阻塞。B,R和I條件獨立,按照條件獨立性\(P(S|B,R,I,G)=P(S|I,G)\)
\(P(G|B,R,I)\),同理
- B,R,I中沒有結點阻塞G到B,R,I的所有無向路徑。因為S沒有給出且S的后代結點沒有被給出結點B,R,I影響。所以B,R,I和G條件獨立。\(P(G|B,R,I)=P(G)\)
\(P(I|B,R)\),同理
- 給定B后,RBI路徑被B阻塞,所以R,I在B的條件下獨立。\(P(I|B,R)=P(I|B)\)
例2:如下圖,有三問

a) 列出從B到S所有無向路徑
b) 給定證據結點D,那么a)中哪些無向路徑被阻塞?
c) 等式\(P(S|B,D)=P(S|D)\)是否成立,為什么?
答:
a) 從B到S利用深度優先搜索的思路找到所有無向路徑。
BDS,BDCS,BDACS
b) BDS,被D阻塞(B,S串行連接被D阻塞);BDACS,未被阻塞(A,B匯集連接處D已知,路徑未阻塞);BDCS,未被阻塞(C,B匯集連接處D已知,路徑未阻塞);
c) 由b)可知,B,S之間所有無向路徑並未都被阻塞,B,S並不條件獨立,所以等式\(P(S|B,D)=P(S|D)\)不成立。