貝葉斯網絡2

轉載:http://www.cnblogs.com/ironstark/p/5087081.html

機器學習 —— 概率圖模型(貝葉斯網絡)

概率圖模型(PGM)是一種對現實情況進行描述的模型。
其核心是條件概率,本質上是利用先驗知識,確立一個隨機變量之間的關聯約束關係,最終達成方便求取條件概率的目的。

1.從現象出發—這個世界都是隨機變量

  這個世界都是隨機變量。

  第一,世界是未知的,是有多種可能性的。

  第二,世界上一切都是相互聯繫的。

  第三,隨機變量是一種映射,把觀測到的樣本映射成數值的過程叫做隨機變量。

  上述三條原則給了我們以量化描述世界的手段,我們可以藉此把一個抽象的問題變成一個數學問題。並且藉助數學手段,發現問題,解決問題。世界上一切都是未知的,都是隨機變量。明天會有多少嬰兒降生武漢是隨機變量,明天出生嬰兒的基因也是隨機變量,這些孩子智商高低是隨機變量,高考分數是隨機變量,月薪幾何是隨機變量。但是這些隨機變量之間完全無關麼?男孩,智商高,高考低分,月薪高的概率又有多少?顯然,隨機變量每增多一個,樣本空間就會以指數形式爆表上漲。我們要如何快速的計算一組給定隨機變量觀察值的概率呢?概率圖給出了答案。

  

2.概率圖—自帶智能的模型

  其實在看CRF的時候我就常常在想,基於CRF的詞性分割使用了詞相鄰的信息;基於邊緣檢測的圖像處理使用了像素的相鄰信息;相鄰信息夠麼?僅僅考慮相鄰像素所帶來的信息足夠將一個觀察(句子或圖像)恢復出其本意麼?沒錯,最豐富的關係一定處於相鄰信息中,比如圖像的邊緣對分割的共線絕對不可磨滅,HMM詞性分割也效果不錯…….但是如果把不相鄰的信息引入判斷會怎樣?在我苦思冥想如何引入不相鄰信息的時候Deep Learning 和 CNN憑空出現,不得不承認設計這套東西的人極度聰明,利用下采樣建立較遠像素的聯繫,利用卷積將之前產生的效果累加到目前時刻上(卷積的本質是堆砌+變質)。這樣就把不相鄰的信息給使用上了。但是這樣是不是唯一的方法呢?顯然不是,還有一種不那麼自動,卻 not intractable方法,叫做PGM。

  還是從快速計算條件概率來談PGM。首先是representation,概率圖的表達是一張。。。圖。。。圖當然會有節點,會有邊。節點則爲隨機變量(一切都是隨機變量),邊則爲依賴關係(現在只談有向圖)。一張典型的概率圖——貝葉斯網絡如下所示:

2.1 相關性

  對於一副給定的圖,每個節點都代表一個隨機變量,節點與節點之間通過箭頭相連。似乎這在節點與節點之間形成了“流”。那麼節點的流之間是否會和隨機變量的相關性產生聯繫?答案是肯定的。考慮幾種典型的流:

  顯然直觀的看來,如果x與y直接相連,那麼x,y必然是相關的,給出了x的信息則會影響我們對y的判斷。當x與y間接相連時,若x,y呈鏈狀關係,那麼影響肯定會傳遞下去,如果x,y不呈鏈狀關係,有共同原因時,則相關;共同發生作用時,則不相關。

  這裏稱             x->W<-y       爲 V 結構

  一般情況下,相關性的傳遞是無法通過V結構的。

  但是如果是條件概率的情況下,相關性的傳遞則表現出完全不同的性質。W 是觀測值,如果節點中有隨機變量被觀測了,那麼相關性的連接則會全部取反。也就是說,原本通過W相關的兩個變量,在W被觀測的情況下,相關性被分離了。也叫做d-separated.記作:d-sepG(X, Y | Z)

  上圖中,當且僅當,G被觀測且沒有其他變化的情況下,S會與D相關。

2.2 因式分解

  由上述分析可知,當給定某些觀測時,原本相關的隨機變量可以被分離

  由此我們得出以下定理:

  考慮P(D,I,G,L,S)應該怎麼計算?如果沒有任何先驗信息,那麼應該是按照條件概率公式:

  P(D,I,G,L,S) = P(D)*P(I|D)*P(G|I,D)*P(L|I,D,G)*P(S|D,I,G,L);

  上式的最後一項,光是對於P(S|D,I,G,L)就需要考慮DIGL所有的可能,並且每增加一個隨機變量,計算的複雜程度就會上升一個檔次。使用貝葉斯鏈式法則,那麼上式就可以簡化成以下形式:

 

  從概率圖的角度上來講,其表達了在給定父節點的情況下,任意一個節點都是與其非子節點,都是d分離的。

  從概率的角度上來講,任意一個隨機變量,在給定父隨機變量的情況下,和其非子隨機變量,都是d分離的。

  

  

  或者再通俗一點,一個聰明人,在一場很難的考試裏拿了高分,卻得到了一封很爛的推薦信,同時他SAT考試卻是高分的概率是多少?

  我們再隱藏一些細節,一個人推薦信很爛,他SAT高分的概率是多少?或者,一個人SAT低分,卻手握牛推的概率是多少?

  如果不考慮隨機變量之間的依賴關係,上述內容是很難計算的。但是如果有一個構建好的概率圖,上面的問題則可以轉化爲條件概率問題。

  通過觀察實驗,我們可以得到一系列的條件概率,通過此條件概率,以及貝葉斯條件概率鏈式法則,則可求的我們想要的那一組隨機變量的概率。

  OK,玩具例子結束了,接下來我們來一點真的。如何通過某人血型(A B AB O)及其父母血型推測其基因型(AAAO AB BB BO ….),首先,我們可以建立一張概率圖,所有的血型B,基因型G,都是隨機變量(節點)。

  

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章