條件隨機場 詳析

條件隨機場(Conditional random fields),是一種判別式圖模型,因爲其強大的表達能力和出色的性能,得到了廣泛的應用。從最通用角度來看,CRF本質上是給定了觀察值集合(observations)的馬爾可夫隨機場。在這裏,我們直接從最通用的角度來認識和理解CRF,最後可以看到,線性CRF和所謂的高階CRF,都是某種特定結構的CRF。
1. 隨機場

 

   簡單地講,隨機場可以看成是一組隨機變量的集合(這組隨機變量對應同一個樣本空間)。當然,這些隨機變量之間可能有依賴關係,一般來說,也只有當這些變量之間有依賴關係的時候,我們將其單獨拿出來看成一個隨機場纔有實際意義

2. Markov隨機場(MRF)
   這是加了Markov性質限制的隨機場。首先,一個Markov隨機場對應一個無向圖。這個無向圖上的每一個節點對應一個隨機變量,節點之間的邊表示節點對應的隨機變量之間有概率依賴關係。因此,Markov隨機場的結構本質上反應了我們的先驗知識——哪些變量之間有依賴關係需要考慮,而哪些可以忽略。Markov性質是指,對Markov隨機場中的任何一個隨機變量,給定場中其他所有變量下該變量的分佈,等同於給定場中該變量的鄰居節點下該變量的分佈。這讓人立刻聯想到馬式鏈的定義:它們都體現了一個思想:離當前因素比較遙遠(這個遙遠要根據具體情況自己定義)的因素對當前因素的性質影響不大
    Markov性質可以看作是Markov隨機場的微觀屬性,那麼其宏觀屬性就是其聯合概率的形式。
    假設MRF的變量集合爲
    S={y1,...yn},
    P(y1,...yn)= 1/Z * exp{-1/T * U(y1,..yn)},
    其中Z是歸一化因子,即對分子的所有y1,..yn求和得到。U(y1,..yn)一般稱爲energy function, 定義爲在MRF上所有clique-potential之和。T稱爲溫度,一般取1。什麼是click-potential呢? 就是在MRF對應的圖中,每一個clique對應一個函數,稱爲clique-potential。這個聯合概率形式又叫做Gibbs distribution。Hammersley and Clifford定理表達了這兩種屬性的等價性。
 如果click-potential的定義和clique在圖中所處的位置無關,則稱該MRF是homogeneous;如果click-potential的定義和clique在圖中的朝向(orientation)無關,則稱該MRF是isotropic的。一般來說,爲了簡化計算,都是假定MRF即是homogeneous也是iostropic的。
3.從Markov隨機場到CRF
    現在,如果給定的MRF中每個隨機變量下面還有觀察值,我們要確定的是給定觀察集合下,這個MRF的分佈,也就是條件分佈,那麼這個MRF就稱爲CRF(Conditional Random Field)。它的條件分佈形式完全類似於MRF的分佈形式,只不過多了一個觀察集合x,即P(y1,..yn|x) = 1/Z(x) * exp{ -1/T * U(y1,...yn,x)。U(y1,..yn,X)仍舊是click-potential之和。
4.訓練
   通過一組樣本,我們希望能夠得到CRF對應的分佈形式,並且用這種分佈形式對測試樣本進行分類。也就是測試樣本中每個隨機變量的取值。
   在實際應用中,clique-potential主要由用戶自己定義的特徵函數組成,即用戶自己定義一組函數,這些函數被認爲是可以用來幫助描述隨機變量分佈的。而這些特徵函數的強弱以及正向、負向是通過訓練得到的一組權重來表達的,這樣,實際應用中我們需要給出特徵函數以及權重的共享關係(不同的特徵函數可能共享同一個權重),而clicque-potential本質上成了對應特徵函數的線性組合。這些權重就成了CRF的參數。因此,本質上,圖的結構是用戶通過給出特徵函數的定義確定的(例如,只有一維特徵函數,對應的圖上是沒有邊的)還有,CRF的分佈成了對數線性形式。
    看到這個分佈形式,我們自然會想到用最大似然準則來進行訓練。對其取log之後,會發現,表達式是convex的,也就是具有全局最優解——這是很讓人振奮的事情。而且,其梯度具有解析解,這樣可以用LBFGS來求解極值。
     此外,也可以使用最大熵準則進行訓練,這樣可以用比較成熟的GIS和IIS算法進行訓練。由於對數線性的分佈形式下,最大熵準則和最大似然準則本質上是一樣的,所以兩者區別不是很大。
     此外,由於前面兩種訓練方法在每一輪迭代時,都需要inference,這樣會極大地降低訓練速度。因此普遍採用另一種近似的目標函數,稱爲僞似然。它用每個隨機變量的條件分佈(就是給定其他所有隨件變量的分佈)之積來替代原來的似然函數,根據markov性質,這個條件分佈只和其鄰居有關(Markov Blanket),這樣在迭代過程中不需要進行全局的inference,速度會得到極大的提升。我自己的經驗表明,當特徵函數很多取實數值時,僞似然的效果跟最大似然的差不多,甚至略好於後者。但對於大量二元特徵(binary-valued),僞似然的效果就很差了。
5.推斷
     如前所述,訓練的過程中我們需要概率推斷,分類的時候我們需要找出概率最大的一組解,這都涉及到推斷。這個問題本質上屬於圖模型上的概率推斷問題。對於最簡單的線性框架的結構,我們可以使用Viterbi算法。如果圖結果是樹形的,可以採用信念傳播(belief propogation),用sum-product得到概率,用max-product得到最優的configuration.但是對於任意圖,這些方法就無效了。一種近似的算法,稱爲loopy-belief propogation,就是在非樹形結構上採用信念傳播來進行推斷,通過循環傳播來得到近似解。這麼做據說在某些場合下效果不錯。但是,在訓練時如果採用近似推斷的話,可能會導致長時間無法收斂。
     基於任意圖上的概率推斷算法稱爲junction tree。 這個算法能夠保證對任意圖進行精確推理。它首先把原來的圖進行三角化,在三角化的圖上把clique按照某種方式枚舉出來作爲節點(實際上就是合併特徵函數),clicque之間如果有交集,對應的節點之間就有邊,這樣就得到一個新的圖,通過對這個圖求最大生成樹,就得到了Junction tree. 最後在junction tree上進行信念傳播可以保證得到精確解。
     本質上這3中算法都屬於動態規劃的思想。Viterbi的想法最直觀,信念傳播首先將特徵函數都轉換爲factor,並將其與隨機變量組合在一起形成factor-graph, 這樣在factor-graph上用動態規劃的思想進行推斷(即做了一些預處理)。junction tree的做法是通過合併原有的特徵函數, 形成一種新的圖,在這個圖上可以保證動態規劃的無後效性,於是可以進行精確推理。(做了更爲複雜的預處理)
     值得注意的是,junction tree雖然極大地避開了組合爆炸,但由於它要合併特徵函數並尋找clique, 用戶的特徵函數如果定義的維數過大,它得到新的clique也會很大,這樣在計算的時候還是會很低效,因爲在推斷的過程中它需要遍歷所有clique中的配置,這和clique的大小是呈指數級的。所以,用戶要避免使用維數過高的特徵。

 

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