1. 程式人生 > >理解概率圖模型中的有向分離(d-separation)

理解概率圖模型中的有向分離(d-separation)

引言

給定貝葉斯網,我們能不能根據這個有向無環圖的結構,來簡化概率計算?

比如給定下面這個貝葉斯網,我們就知道,X與Y互為獨立事件(記做XYX⊥Y)。

這裡寫圖片描述 知道了這個結論,那概率P(Y|X)的計算問題,就能得到簡化(如下) P(X,Y)=P(X)P(Y)P(X,Y)=P(X)P(Y)

這就是有向分離(d-separation)的基本思想:通過貝葉斯網中看兩個事件的關係(兩個事件是否條件獨立),從而簡化概率計算。
若X與Y關於Z是有向分離(d-separation)的,則P(X,Y|Z)=P(X|Z)P(Y|Z)P(X,Y|Z)=P(X|Z)P(Y|Z)

下面通過詳細分析貝葉斯網中4種常見的連線情況,來總結有向分離

(d-separation)的一般規律。

這裡寫圖片描述

4種連線情況討論

這裡假設有三個觀測事件X,Y,Z。

  • 若不觀測Z,計算P(X,Y)=zP(X,Y,Z)P(X,Y)=∑zP(X,Y,Z))就能說明X與Y關於Z有向分離(d-separation)的。

下面就對每一種連線,分兩種情況(“觀測Z”與“不觀測Z”)討論。

直接連線 (X->Z->Y)

  • 若不觀測Z,則P(X,Y)=zP(X,Y,Z)=P(X)zP(Z|X)P(Y|Z)=P(X)P(Y|X)P(X,Y)=∑zP(X,Y,Z)=P(X)∑zP(Z|X)P(Y|Z)=P(X)P(Y|X)。X與Y並不是獨立事件。

  • 若觀測Z,則P(X,Y|Z)=P(X,Y,Z)/P(Z)=(P(X)P(Z|X)P(Y|Z))/P(Z)=P(X|Z)P(Y|Z)。X與Y關於Z條件獨立。

(推導中需要用到P(A|B)=P(AB)/P(B),以及P(B)P(A|B)=P(A)P(B|A))

間接因果作用(Y->Z->X)

  • 若不觀測Z,則P(X,Y)=zP(X,Y,Z)=P(Y)P(X|Y)P(X,Y)=∑zP(X,Y,Z)=P(Y)P(X|Y)。X與Y並不是獨立事件。

  • 若觀測Z,則P(X,Y|Z)=P(X,Y,Z)/P(Z)=(P(Y)P(Z|Y)P(X|Z))/P(Z)=P(Y|Z)P(X|Z)。X與Y關於Z條件獨立。

共同的原因(X<-Z->Y)

  • 若不觀測Z,則P(X,Y)=zP(X,Y,Z)=zP(X|Z)P(Y|Z)P(Z)P(X,Y)=∑zP(X,Y,Z)=∑zP(X|Z)P(Y|Z)P(Z)

    。X與Y並不是獨立事件。

  • 若觀測Z,則P(X,Y|Z)=P(X,Y,Z)/P(Z)=(P(X|Z)P(Z)P(Y|Z))/P(Z)=P(X|Z)P(Y|Z)。X與Y關於Z條件獨立。

共同的作用(X->Z<-Y)

  • 若不觀測Z,則P(X,Y)=zP(X,Y,Z)=P(X)P(Y)zP(Z)=P(X)P(Y)P(X,Y)=∑zP(X,Y,Z)=P(X)P(Y)∑zP(Z)=P(X)P(Y)。X與Y相互獨立。

  • 若觀測Z,則P(X,Y|Z)=P(X,Y,Z)/P(Z)=P(X)P(Y)P(Z|X,Y)/P(Z)。X與Y關於Z不獨立。

簡化

要去推導這些公式來驗證X與Y是否關於Z有向分離,太複雜了點。有沒有簡單點的方法來判斷X與Y是否是關於Z有向分離的呢?
當然可以,下面的文字就說明如何做到看圖就能判斷有向分離

X influence Y

若X與Y相互獨立,就說明X不會影響(influence)Y。將上述4種情況總結起來,見下圖:

這裡寫圖片描述

Active Trails

當下面兩個條件中有一個被滿足,說明一個Trail(X1-X2-…-Xn)關於Z是Active的:
(1)對於任意V型結構:Xi->X<-Xj,X屬於Z,或X的子事件屬於Z
(2)沒有Xi屬於Z(Z不為空)

下面舉例說明怎麼用這個規則。
在下面這個貝葉斯網中

這裡寫圖片描述

給定一個Trail:D->G<-I->S
* 若Z={},條件(2)不滿足。考慮條件(1),Trail中有V型結構(D->G<-I),但該結構的所有事件(D,G,I)都不屬於Z,,且G的子事件L也不屬於Z,所以這個Tail不Active

  • 若Z={L},則這個Trail中所有事件(D,G,I,S)都不屬於Z,條件(2)被滿足。考慮條件(1),Trail中有V型結構(D->G<-I),雖然該結構的所有事件(D,G,I)都不屬於Z,但G的子事件L屬於Z,所以條件(1)被滿足。此時Trail是Active的。

  • 若Z={L,I},則這個Trail中有(所有事件D,G,I,S),事件I屬於Z,條件(2)不滿足。所以這個Tail不Active。(雖然條件(1)被滿足)

看圖判斷d-separation

定義:給定Z,只要在貝葉斯網中,X到Y的Trail不是Active,就說明X和Y關於Z是有向分離(d-separation)的。

結論

給定一個貝葉斯網,只要看圖判斷一個從X到Y的Trail是不是Active,就能判斷X與Y是不是有向分離(Active則不是有向分離)。用兩句話總結本文:

  • X和Y關於Z有向分離,等於X和Y關於Z條件獨立
  • X到Y的Tail不是Active,等於X和Y關於Z條件獨立

例子:判斷下圖C與D是不是關於F有向分離?

這裡寫圖片描述

解答:先判斷圖中的整個Tail是不是Active:
考慮條件(1),圖中有V結構(C->E<-D),雖然這個V結構中的所有事件(C,E,D)都不屬於F,但中間點E的子事件F屬於F。所以條件(1)滿足,該Tail是Active的,所以C與D不滿足有向分離

參考