機率圖模型(PGM)是一種對現實狀況進行描述的模型。其核心是條件機率,本質上是利用先驗知識,確立一個隨機變量之間的關聯約束關係,最終達成方便求取條件機率的目的。網絡
這個世界都是隨機變量。設計
第一,世界是未知的,是有多種可能性的。3d
第二,世界上一切都是相互聯繫的。blog
第三,隨機變量是一種映射,把觀測到的樣本映射成數值的過程叫作隨機變量。數學
上述三條原則給了咱們以量化描述世界的手段,咱們能夠藉此把一個抽象的問題變成一個數學問題。而且藉助數學手段,發現問題,解決問題。世界上一切都是未知的,都是隨機變量。明天會有多少嬰兒降生武漢是隨機變量,明天出生嬰兒的基因也是隨機變量,這些孩子智商高低是隨機變量,高考分數是隨機變量,月薪幾何是隨機變量。可是這些隨機變量之間徹底無關麼?男孩,智商高,高考低分,月薪高的機率又有多少?顯然,隨機變量每增多一個,樣本空間就會以指數形式爆表上漲。咱們要如何快速的計算一組給定隨機變量觀察值的機率呢?機率圖給出了答案。io
其實在看CRF的時候我就經常在想,基於CRF的詞性分割使用了詞相鄰的信息;基於邊緣檢測的圖像處理使用了像素的相鄰信息;相鄰信息夠麼?僅僅考慮相鄰像素所帶來的信息足夠將一個觀察(句子或圖像)恢復出其本意麼?沒錯,最豐富的關係必定處於相鄰信息中,好比圖像的邊緣對分割的共線絕對不可磨滅,HMM詞性分割也效果不錯.......可是若是把不相鄰的信息引入判斷會怎樣?在我苦思冥想如何引入不相鄰信息的時候Deep Learning 和 CNN憑空出現,不得不認可設計這套東西的人極度聰明,利用下采樣創建較遠像素的聯繫,利用卷積將以前產生的效果累加到目前時刻上(卷積的本質是堆砌+變質)。這樣就把不相鄰的信息給使用上了。可是這樣是否是惟一的方法呢?顯然不是,還有一種不那麼自動,卻 not intractable方法,叫作PGM。圖像處理
仍是從快速計算條件機率來談PGM。首先是representation,機率圖的表達是一張。。。圖。。。圖固然會有節點,會有邊。節點則爲隨機變量(一切都是隨機變量),邊則爲依賴關係(如今只談有向圖)。一張典型的機率圖——貝葉斯網絡以下所示:table
對於一副給定的圖,每一個節點都表明一個隨機變量,節點與節點之間經過箭頭相連。彷佛這在節點與節點之間造成了「流」。那麼節點的流之間是否會和隨機變量的相關性產生聯繫?答案是確定的。考慮幾種典型的流:變量
顯然直觀的看來,若是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相關。
由上述分析可知,當給定某些觀測時,本來相關的隨機變量能夠被分離。
由此咱們得出如下定理:
考慮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,都是隨機變量(節點)。