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