1. 程式人生 > >概率圖模型推斷之Belief Propagation

概率圖模型推斷之Belief Propagation

初步打算把概率圖模型中推斷方法都介紹一下,包括Belief Propagation,變分方法,MCMC,以及像是Graph cut也做一些說明。
關於Belief Propagation是什麼?
Belief Propagation是一種資訊傳遞方法,一般用來解關於概率圖模型中的推斷問題,在這些問題中,單純地通過公式推導或者MC模擬是很難得到準確答案的,這就需要BP,能夠很有效地求解一些特定問題得邊緣概率。
首先說明一下為什麼邊緣概率如此難求,wiki上的例子:

X={xi}是一個離散的隨機變數集合,並且其聯合概率是p,關於某個變數的邊緣概率就是對於所有其他變數的一個求和
pXi(x

i)=x:xi=xip(x)
但是這個求和會隨著變數的增多而變得呈指數增長,假設說有100個二元變數,每個可以取01,那樣所需要的求和次數就是2996.338×1029,BP能夠充分利用資料結構資訊,讓計算變得很簡便。像是以前學得動態規劃解決最短路徑,以及維特比方法求HMM的Hidden state的概率,都是用了BP的思想。
說道動態規劃(Dynamic programing),可能大家都很熟悉,DP的主要思想就是構造最有子空間,把求解一個大問題分解成求解一系列的小問題,BP也是這個思想,BP利用了局部分訊息傳遞,把計算全域性的求和或者積分,轉換成了區域性的訊息傳遞,每個節點都能都過自身的狀態以及鄰近節點的狀態做出評價,得到自身的下一狀態,不斷地更新最終使系統達到穩定。

下面以MRF上的Belief Propagation為例來介紹BP是如何求解MRF中的Inference問題的。
一般一個MRF問題都可以表述成這樣的形式:

p({x})=1Z(i,j)ψi,j(xi,xj)iϕi(xi)
ϕi(xi)一般是為了簡略,原本應該是ϕi(xi,yi)的形式,yi是可測變數,觀察變數,xi是hidden node,不可測的,一般yi的不可變,所以將其省略,而xi卻又很多種可能,例如很多可能性標籤,等等,一般用個L維的向量來表示。在BP中,不同的Hidden node之間(一般指有鄰接關係的)是通過message來傳遞訊息的,這樣我們定義一個message變數m
ij
(xj)
,來表示從節點i向節點j傳遞的一個訊息,也可以傳遞的belief,對於xj可能性的度量,

參考:
【1】http://en.wikipedia.org/wiki/Belief_propagation
【2】http://blog.sina.com.cn/s/blog_4dfdfdc30100q2el.html
【3】Jonathan S. Yedidia, William T. Freeman, and Yair Weiss, “Understanding Belief Propagation and Its Generalizations” in Exploring Artificial Intelligence in the New Millennium, Lakemeyer, G. and Nebel, B., Eds., ISBN: 1-55860-811-7, chapter 8, pp. 239-236, Morgan Kaufmann Publishers, January 2003
【5】Constructing Free Energy Approximations and Generalized Belief Propagation Algorithms
http://www.cs.princeton.edu/courses/archive/spr06/cos598C/papers/YedidaFreemanWeiss2004.pdf