【概率圖模型】從貝葉斯網絡到條件隨機場

貝葉斯網絡

定義:
  貝葉斯網絡是一個有向無環圖DirectedAcyclicGraphDAG(Directed Acyclic Graph,DAG)模型,有代表變量節點及連接這些節點的有向邊構成。節點代表隨機變量,節點間的有向邊代表了節點間的相互關係(有父節點指向其子節點),用條件概率表達變量間的依賴關係,沒有父節點的用先驗概率進行信息表達。
在這裏插入圖片描述
  令GG爲定義在{X1,X2,...,Xn}\{X_1,X_2,...,X_n\}上的一個貝葉斯網絡,其聯合概率分佈可以表示爲各個節點的條件概率分佈的乘積:
P(X)=i=1npi(XiParG(Xi)) P(X) = \prod \limits_{i=1}^{n}p_i(X_i|Par_G(X_i))
  其中,ParG(Xi)Par_G(X_i)爲節點XiX_i的父節點,pi(XiParG(Xi)p_i(X_i|Par_G(X_i)爲節點條件概率。

結論:
  貝葉斯網絡的聯合概率分佈可以表示爲:局部 條件概率 連乘積的形式,(對比馬爾可夫模型和因子模型,貝葉斯網絡條件概率的值因爲是概率,而不是勢函數的大小值,所以不用歸一化)。
在這裏插入圖片描述
  如上圖,D代表試卷難度,I代表智商,G代表考試成績,S代表高考成績,L代表是否給該生推薦信。
所以上面這個例子的聯合概率分佈就可以表示爲:
P(X)=P(D,I,G,S,L)=P(D)P(I)P(GI,D)P(SI)P(LG) P(X)=P(D,I,G,S,L) = P(D)·P(I)·P(G|I,D)·P(S|I)·P(L|G)
所以聯合概率分佈的其中的一項概率可以計算表示爲:
P(d1,i0,g1,s1,l1)=P(d1)P(i0)P(g1I0,d1)P(s1i0)P(l0g1)=0.4×0.7×0.05×0.1=0.00007 P(d^1,i^0,g^1,s^1,l^1)=P(d^1)P(i^0)P(g^1|I^0,d^1)P(s^1|i^0)P(l^0|g^1)=0.4×0.7×0.05×0.1=0.00007
而所有的聯合概率分佈的項目和爲1,就是概率和爲1。

馬爾可夫隨機場:

定義:
  馬爾可夫隨機場(Markov Random Fields,MRF)的聯合概率分佈可以表示爲一下分解形式
P(x1,x2,...,xn)=1ZΦi=1kϕi(Di) P(x_1,x_2,...,x_n)=\frac{1}{Z_\Phi}\prod \limits_{i=1}^{k}\phi_i(D_i)
  其中,ZΦZ_\Phi爲聯合概率分佈的歸一化因子,通常稱之爲配分函數(partition function),DiD_i是隨機變量的集合,因子ϕi(Di)\phi_i(D_i)是從隨機變量集合到實數域的一個映射,稱之爲勢函數或者因子
Φ=(ϕ1(D1),ϕ2(D2),...ϕk(Dk)) \Phi = (\phi_1(D_1),\phi_2(D_2),...\phi_k(D_k))
ZΦ=i=1kϕi(Di) Z_\Phi=\sum \limits_{} ^{}\prod \limits_{i=1}^{k}\phi_i(D_i)
  聯合概率分佈可以表示爲:局部勢函數的連乘積的形式,並歸一,局部勢函數可以分爲:點勢函數與邊勢函數
在這裏插入圖片描述
所以
P(X)=P(A,B,C,D)=1ZΦi=1kϕi(Di)=1ZΦϕ1(A,B)ϕ1(B,C)ϕ1(C,D)ϕ1(D,A) P(X)=P(A,B,C,D) =\frac{1}{Z_\Phi}\prod \limits_{i=1}^{k}\phi_i(D_i)=\frac{1}{Z_\Phi}\phi_1(A,B)\phi_1(B,C)\phi_1(C,D)\phi_1(D,A)
  其中ϕ1(A,B)\phi_1(A,B)表示A,B的邊對應的 邊勢函數,所以ϕ1(A,B)\phi_1(A,B)ϕ2(B,C)\phi_2(B,C)ϕ3(C,D)\phi_3(C,D)ϕ4(D,A)\phi_4(D,A)具體可以表示爲下面的形式,其中分別是:邊左取值 、邊右取值、 勢函數值:

[a0b030a0b15a1b01a1b110][b0c030b0c15b1c01b1c110][c0d030c0d15c1d01c1d110][d0a030d0a15d1a01d1a110]\left[ \begin{array}{ccc} a^0 & b^0 & 30\\ a^0 & b^1 & 5\\ a^1 & b^0 & 1\\ a^1 & b^1 & 10\\ \end{array} \right]\left[ \begin{array}{ccc} b^0 & c^0 & 30\\ b^0 & c^1 & 5\\ b^1 & c^0 & 1\\ b^1 & c^1 & 10\\ \end{array} \right]\left[ \begin{array}{ccc} c^0 & d^0 & 30\\ c^0 & d^1 & 5\\ c^1 & d^0 & 1\\ c^1 & d^1 & 10\\ \end{array} \right]\left[ \begin{array}{ccc} d^0 & a^0 & 30\\ d^0 & a^1 & 5\\ d^1 & a^0 & 1\\ d^1 & a^1 & 10\\ \end{array} \right]

所以變量的取值、因子乘積、歸一化概率就可以表示爲:

[a0b0c0d03000000.04a0b0c0d13000000.04a0b0c1d03000000.04a0b0c1d1300.0000041a0b1c0d05000.000069a0b1c0d15000.000069a0b1c1d050000000.69a0b1c1d15000.000069a1b0c0d01000.000014a1b0c0d110000000.14a1b0c1d01000.000014a1b0c1d11000.000014a1b1c0d0100.0000014a1b1c0d11000000.014a1b1c1d01000000.014a1b1c1d11000000.014]\left[ \begin{array}{ccc} 變 & 量 &取&值& 因子乘積&歸一化概率\\ a^0 & b^0 &c^0&d^0& 300000&0.04\\ a^0 & b^0 &c^0&d^1& 300000&0.04\\ a^0 & b^0 &c^1&d^0& 300000&0.04\\ a^0 & b^0 &c^1&d^1& 30&0.0000041\\ a^0 & b^1 &c^0&d^0& 500&0.000069\\ a^0 & b^1 &c^0&d^1& 500&0.000069\\ a^0 & b^1 &c^1&d^0& 5000000&0.69\\ a^0 & b^1 &c^1&d^1& 500&0.000069\\ a^1 & b^0 &c^0&d^0& 100&0.000014\\ a^1 & b^0 &c^0&d^1& 1000000&0.14\\ a^1 & b^0 &c^1&d^0& 100&0.000014\\ a^1 & b^0 &c^1&d^1& 100&0.000014\\ a^1 & b^1 &c^0&d^0& 10&0.0000014\\ a^1 & b^1 &c^0&d^1& 100000&0.014\\ a^1 & b^1 &c^1&d^0& 100000&0.014\\ a^1 & b^1 &c^1&d^1& 100000&0.014\\ \end{array} \right]

因子乘積的和便是ZΦZ_\Phi,上面的每一行,都是概率分佈函數的其中一項。
其中這個圖只定義了A,B,C,D之間邊的關係,沒有定義節點變化的關係,所以可以在原有的式子基礎上加上點對應的勢函數,稱之爲 點勢函數,加上點勢函數後,這樣聯合概率分佈就可以表示爲:
p(X)=1ZΦpϕp(xp)p,qϕpq(xp,xq) p(X)=\frac{1}{Z_\Phi}\prod \limits_{p}^{}\phi_p(x_p)\prod \limits_{p,q}^{}\phi_{pq}(x_p,x_q)
  可以理解爲A點取1,B點取1這個有一個概率,而A點取1或者0也有概率。
  勢函數也稱爲因子,表示爲多個點的取值限制的函數映射,如點A有兩個取值0,1,他的勢函數的取值可以是5,10,如點A,B的邊,其中B的取值也是0,1,則邊的勢函數就有四個取值
每個取值對應勢函數的一個數值,雖然這些數值不是概率,而且加在一起不是1,但是取值的大小可以代表一種概率發生的大小。

因子圖:

定義:
  將一個具有多變量的全局函數因子分解,得到幾個局部函數的乘積,以此爲基礎得到的一個雙向圖叫做因子圖。
  所謂factor graph(因子圖),就是對函數因子分解的表示圖,一種是變量節點,代表全局多元函數中的變量,一種是因子節點,代表因式分解中的局部函數。我們知道,一個全局函數能夠分解爲多個局部函數的積,因式分解就行了,這些局部函數和對應的變量就能體現在因子圖上。在概率論及其應用中, 因子圖是一個在貝葉斯推理中得到廣泛應用的模型。
  因子圖是概率圖的一種,概率圖有很多種,最常見的就是貝葉斯網絡和馬爾可夫隨機場,在概率圖中,求某個變量的邊緣分佈是常見的問題,這問題有很多求解方法,其中之一就是可以把貝葉斯網絡和馬爾可夫隨機場轉換成因子圖,然後用sum-product算法求解。基於因子圖可以用sum-product算法可以高效的求各個變量的邊緣分佈。

根據貝葉斯上面的例子,可以轉換成因子圖的形式,如下:
在這裏插入圖片描述
其中IDGSLI、D、G、S、L分別表示的是變量節點,而fIf_IfDf_DfGf_GfSf_SfLf_L分別表示因子節點,也就是局部函數, 則
所以:
p(I,D,G,S,L)=fI(I)fD(D)fG(G,I,D)fS(L,G)fL(S,I) p(I,D,G,S,L) = f_I(I)f_D(D)f_G(G,I,D)f_S(L,G)f_L(S,I)
  其中上面是貝葉斯網絡轉化過來的,所以不用歸一化,函數值本身就是代表的概率,
所以因子圖的聯合概率通用表示爲:
p(X)=1Zpϕp(Xp) p(X)=\frac{1}{Z}\prod \limits_{p}^{}\phi_p(X_p)

理解:聯合概率分佈可以表示爲:局部勢函數的連乘積的形式,並歸一。

馬爾可夫性質

定義:
  馬爾可夫性質(英語:Markov property)是概率論中的一個概念,當一個隨機過程在給定現在狀態及所有過去狀態情況下,其未來狀態的條件概率分佈僅依賴於當前狀態;換句話說,在給定現在狀態時,它與過去狀態(即該過程的歷史路徑)是條件獨立的,那麼此隨機過程即具有馬爾可夫性質。

  • 具有馬爾可夫性質隨機過程 稱之爲 馬爾可夫過程
  • 時間和狀態都是離散馬爾可夫過程 稱之爲 馬爾可夫鏈

馬爾可夫鏈:

定義:
  馬爾可夫鏈又稱離散時間馬爾可夫鏈(discrete-time Markov chain,DTMC),爲狀態空間中經過從一個狀態到另一個狀態的轉換的隨機過程。該過程要求具備“無記憶”的性質:下一狀態的概率分佈只能由當前狀態決定,在時間序列中它前面的事件均與之無關,這種特定類型的“無記憶性”稱作馬爾可夫性質。
在這裏插入圖片描述
  在這個馬爾可夫鏈中,四個圈表示四個狀態,每條邊表示一個可能的狀態轉換,邊上的權值是轉移概率。
  下一刻狀態如果只由當前狀態決定,就叫一階馬爾可夫鏈,如果由當前和前一刻,那就叫二階,同理。所以有m階馬爾可夫鏈。

隱馬爾可夫模型:

定義:
  隱馬爾可夫模型(Hidden Markov Model,HMM)是用來描述一個含有隱含未知參數的馬爾可夫過程,是馬爾可夫鏈的一種,HMM是關於時序的概率模型,是基於聯合概率建模的生成式模型,描述一個隱藏的含有未知參數的馬爾可夫鏈隨機生成不可觀測的狀態隨機序列,然後基於此再生成可觀測隨機序列的過程。不可觀測的狀態隨機序列被稱爲狀態序列(State Sequence),可觀測隨機序列被稱爲觀測序列(Observation Sequence)。隱馬爾可夫模型要求狀態序列是離散的,觀測序列可以是離散的,也可以是非離散的。
  在正常的馬爾可夫模型中,狀態對於觀測者來說是可見的,這樣狀態的轉移概率便是全部參數,而在隱馬爾可夫模型中,狀態並不是直接可見的,但是受狀態影響的某些變量則是可見的,每一個狀態在可見變量上都有一個概率分佈,因此輸出的可見狀態序列能夠透露出狀態序列的信息。
  在這裏插入圖片描述
  隱含馬爾可夫鏈是馬爾可夫鏈的一個擴展:任一時刻 tt 的狀態StS_t是不可見的。所以觀察者沒法通過觀察到一個狀態序列S1,S2,S3,,STS_1,S_2,S_3,…,S_T來推測轉移概率等參數。但是隱含馬爾可夫模型在每個時刻 tt 會輸出一個OtO_t,而且OtO_tStS_t相關且僅和StS_t相關。這稱爲 獨立輸出假設。隱含馬爾可夫模型的結構如上圖,其中隱含的狀態S1,S2,S3,S_1,S_2,S_3,…是一個典型的馬爾可夫鏈。鮑姆把這種模型稱爲“隱含”馬爾可夫模型。
  
在這裏插入圖片描述
其聯合概率分佈可以表示爲:
p(y,x)=t=1Tp(ytyt1)p(xtyt) p(y,x) = \prod \limits_{t=1}^Tp(y_t|y_{t-1})p(x_t|y_t)

與馬爾可夫隨機場的區別:
  馬爾科夫隨機場是指在一堆數據點(比如圖像矩陣網點)中,每個點的取值只與其鄰域(記得叫clique)有關係,而於更遠的點無關,這種概率模型和馬爾科夫鏈很像,是對複雜現象的簡化,其實質是某種圖模型,兩個點距離越近,關係越密切。
  隱馬爾科夫模型是指模型的真實參數是個馬爾科夫鏈,但是這個鏈是隱藏在表現型下面不可見的,鏈中元素一旦確定,會顯示出表現型這麼一種模型,模型通過表現型估計隱藏參數

條件隨機場:

定義:
  條件隨機場(Conditional Random Fields)爲給定一組輸入隨機變量條件下另外一組輸出隨機變量的條件概率分佈模型,是基於條件概率建模的判別式模型。
在這裏插入圖片描述
其條件概率分佈可以表示爲:
P(YX)=1Z(X)P(X,Y) P(Y|X) = \frac{1}{Z(X)}P'(X,Y)
P(X,Y)=i=1ϕi(Di) P'(X,Y) = \prod \limits_{i=1}\phi_i(D_i)
Z(X)=YP(X,Y) Z(X) = \sum \limits_YP'(X,Y)
  其中,X爲已知輸入隨機變量,Y爲輸出隨機變量
  總把HMM和CRF進行比較,主要是因爲CRF和HMM都利用了圖的知識,但是CRF利用的是馬爾科夫隨機場(無向圖),而HMM的基礎是貝葉斯網絡(有向圖)。而且CRF也有:概率計算問題、學習問題和預測問題。大致計算方法和HMM類似,只不過不需要EM算法進行學習問題。

延伸:生成模型與判別模型的區別

生成模型:對聯合概率建模
判別模型:對條件概率建模
這時候有一個問題,既然是要預測結果,肯定是有一部分知道,另外一部分需要預測,這也就是說,我們求的是條件概率纔對呀?沒錯,其實生成模型建模的是聯合概率分佈,但是最終求的結果還是個條件概率的結果。
假設有如下若干樣本x,y(x,y):
(x,y){(2,1),(2,1),(3,1),(3,1),(3,1)} (x,y) \in \{(2,-1),(2,-1),(3,-1),(3,1),(3,1)\}
求:當 x=3x=3 時,y=y=?
解:

  1. 生成模型的方式進行解題,此時應該對p(x,y)p(x, y)進行建模,則:
p(x,y)p(x,y) y=1y=-1 y=1y=1
x=2x=2 2/52/5 00
x=3x=3 1/51/5 2/52/5

所以:當x=3x=3時,p(y=1)p(y=-1)p(y=1)p(y=1)的概率分別爲:
p(y=1x=3)=p(x=3,y=1)p(x=3)=1535=13 p(y=-1|x=3)= \frac{p(x=3,y=-1)}{p(x=3)}=\frac{\frac{1}{5}}{\frac{3}{5}}=\frac{1}{3}
p(y=1x=3)=p(x=3,y=1)p(x=3)=2535=23 p(y=1|x=3)= \frac{p(x=3,y=1)}{p(x=3)}=\frac{\frac{2}{5}}{\frac{3}{5}}=\frac{2}{3}
由此可以看出,雖然生成模型是對聯合概率進行建模,但是最終還是要算出條件概率來得出結果的,所以說通過學習先驗分佈來推導後驗分佈而進行分類,這個條件概率是根據x,y(x,y)聯合概率與 xx 的邊緣概率計算出來的,有了聯合概率分佈,邊緣概率也可以算得出來了,所以,最終是可以算出條件概率這個結果的,如果有幾分類,就會有幾個後驗概率分佈,這幾個後驗概率分佈都是條件概率分佈了,所以就有幾個模型。
2. 判別式模型的方式進行解題,此時應該對 p(yx)p(y|x) 進行建模,則:

p(yx)p(y\mid x) y=1y=-1 y=1y=1
x=2x=2 11 00
x=3x=3 1/31/3 2/32/3

我們可以看出,判別是模型是直接對p(y|x)進行建模的,也就是,直接學習後驗概率分佈,對後驗概率進行建模,所以這樣的話,只需要一個模型就可以了,輸入時一系列的已知參數,輸出的結果就是我們要的條件概率

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章