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


  概率圖模型(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,都是隨機變量(節點)。

  

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM