機器學習 —— 概率圖模型(推理:消息傳遞算法)


  概率圖模型G(V,E)由節點V和邊E構成。在之前馬爾科夫模型相關的博客中,我談到馬爾科夫模型的本質是當兩個人交流后,其意見(兩個隨機變量)同意0與不同意1的概率組合。而勢函數表達的是兩個意見相同或者相左的程度

  我們搞的那么麻煩,最后想要得到的不就是每個意見正確與否(隨機變量取不同值的概率)嗎?與其采用解析的方法去算,去把所有其他的變量邊際掉,那干脆采用模擬的方法,讓這個消息傳遞跑起來,把系統迭代N次以后的結果拿出來分析。這種朴素(Naive)的想法,就是 Message Passing 算法。

1. 聚類圖

  在執行消息傳遞之前,我們需要指定兩件事情:1.掌握消息的人有哪些,手里都有哪些消息。2.他把這個消息告訴了誰。為了解答這兩個問題,需要從我們手里僅有的材料去構造。

  P(ABCD) = P(AB)*P(BC)*P(CD)*P(DA)  -------  這里的P是未歸一化的概率。 通過這個聯合概率計算式,我們獲得一種叫做聚類圖的全新圖模型。從概率圖到聚類圖如下所示。

  

  其中,聚類圖中存在 Cluster 和 Edge. Cluster 就是掌握消息的人,Cluster 里的內容就是人所掌握的消息。Edge 連接了兩個交互消息的人,Edge上是兩個人交換的消息。當然,聚類圖不僅僅是這么簡單的結構。還有更復雜的聚類圖如下.

  勢函數表達的是兩個人意見相同或者相左的程度,兩個勢函數相乘則會表達多個消息相同或相左的程度。多個勢函數相乘可以成為某個人的消息函數。

  對於聚類圖,有以下性質:

  1.C(Clusters)由節點組成。2. 邊上傳遞的消息,是兩個C的交集(必須要兩個人同時知道的消息才能交流)。3.消息函數是勢函數的乘積。

  總結一下:消息是隨機變量,並且都是相關的。人掌握消息之間的關系。人和人之間可以傳遞消息。

  我們假設消息A:明天下雨 B:明天下雪 C:地上有水  那么人們一般都會認為 A1B1C1的可能性肯定大於A1B1C0。而E有可能是明天有灑水車。總之,不同的人掌握着不同的消息。消息與消息之間會相互影響。

 

2.消息傳遞 

  有了消息之后,兩個都知道同一件事情的人就會交流和這件事有關的內容,比如 2 會告訴 1 關於C(地上有沒有水)的事情,這會改變1對消息C的看法(概率)。我們把消息傳遞寫成以下形式。

  

  i->j 表示消息從 i 傳遞到 j。Sij表示被傳遞的消息。通式的物理意義有以下三點:

  1.消息從 i 傳遞到 j, i 會綜合所有人給他說的信息(把所有的δ 相乘)

  2.加上自己對消息組合的認知(把 δ 相乘 的結果乘以消息之間的關系)

  3.去除掉不需要傳遞的部分 (把其他變量邊際掉)

  以上循環一定次數后,達到某種穩定狀態。

  最終計算某個人對所有消息的看法Belief (所有穩態輸入消息δ 乘以消息關系)

 

  這種算法會和精確解法存在一定偏差,故此僅為一種近似算法。

  

  

3.聚類圖的性質

  不是隨便一幅圖都可以作為聚類圖。聚類圖有3個基本要素:

  1.每個勢函數都被使用,且被使用一次。

  2.聚類圖中消息傳遞不能形成環。

  3.每個消息如果存在兩個知道的人,這兩個人必須要有交流途徑

  關於第一點,勢函數描述了消息之間的關系,如果漏了,則失去了消息之間的某個信息,如果重復使用,則某種關系被多余的加強了。

  第二點則比較有意思,其實際上描述的是一個正反饋的情況。假設有個人,編了一個謊話:明天會下雨。並且把這個謊話告訴了A,然后A又告訴B,B->C,C-D。如果恰好編這個謊話的人正好和D認識,又正好交流了明天是否會下雨的情況。那么就“謊話到最后自己都信了”。這就對“明天下雨”這個隨機變量的概率產生較大的估計偏差。簡而言之就是,消息不能成環。

  第三點要表達的是,如果甲乙兩個人都知道一件事情A,那么他們一定要有交流途徑,無論直接交流還是通過其他人轉達,總之消息A一定要有在甲乙兩人之間聯通的路徑。

  值得注意的一點是,明天下雨A和地上有水C之間可能存在較強的相關性,就算A沒有形成環,卻通過C形成了環,最終也會對結果產生較大影響。比如圖中,xy強相關時,消息傳遞算法的表現並不好。

  有一種一定能夠滿足上訴性質的聚類圖成為Bethe Clusters Graph。在使用消息傳遞算法時,優先考慮構造此聚類圖。該聚類圖中有兩種不同的人,一種掌握多個消息,一種掌握單種消息。這樣的聚類圖一定不會存在環。其形式如下所示:

 

4. 傳播算法的性質

  一群人交換意見,如果大家最后意見都相同了。比如 甲乙都認為明天下雨的概率是0.6,乙丙都認為明天地上有水的概率是0.7.........這種情況稱為聚類圖校准了。

  

  公式表示,邊際掉無關量,兩個人對交流消息的看法是一致的。

  意見相同還有一個說法,就是交流過程穩定,也就是說,在經過無數次迭代后,消息收斂了。

  

——————消息傳遞公式

 ————————δj-i與求和無關,因為不在求和域內,故可以乘出去。發現i,j是對稱輪換的

——————————最終得出收斂和校准是等價的

——————————一種新的符號

————此式證明了,消息傳遞算法無論如何運行,初始設定都沒有引入新的信息

 

5.總結

  消息傳遞算法是一種朴素的模擬推斷算法,用於求解隨機變量的給定依賴條件下的概率。這種算法的計算結果是有偏的,但該算法卻可以大幅降低推斷所需要的計算量。

  


免責聲明!

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



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