機器學習演算法 Task04條件隨機場(CRF)

2021-10-05 15:04:32 字數 4239 閱讀 5629

最近看了一些有關於crf的**,基本概念懂,但是到求解的部分有些疑惑。crf問題容易構成np-hard問題,求解過程還需要再學習。下面稍微介紹一些crf的學習吧,這裡前面crf內容主要參考了下面博文,講的非常好:

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

2.1. 隨機場

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

2.2. markov隨機場(mrf)

這是加了markov性質限制的隨機場。首先,乙個markov隨機場對應乙個無向圖。這個無向圖上的每乙個節點對應乙個隨機變數,節點之間的邊表示節點對應的隨機變數之間有概率依賴關係。因此,markov隨機場的結構本質上反應了我們的先驗知識——哪些變數之間有依賴關係需要考慮,而哪些可以忽略。

馬爾科夫鏈最重要的則是考慮一步轉移概率,放在圖模型中理解,就是知道當前節點的狀態,那麼下一步轉移到下個節點的概率分布是如何的。例如下圖4個節點一步狀態轉移概率:

馬爾科夫鏈一步轉移概率想要描述的問題即是,例如當前狀態位於節點0,那麼下次轉移到節點0、1、2、3的概率分別是p00

p00。那麼我們可以將所有狀態的一步轉移概率放到乙個**中,表示為轉移概率表,其中每一行的每個資料為對應行狀態轉移到其他狀態的概率。因為表示下個狀態出現在各個節點的概率,狀態不可能憑空消失,所以每一行的概率和一定為1。那麼如果把這些資料儲存到乙個矩陣中,則是轉移矩陣(transition matrix)。如下圖:

關於馬爾科夫鏈這塊的理解可以參考下面博文:

/*****/

cvpr2013/cvpr13_saliency_final.pdf

另外需要強調下,這篇文章是大連理工大學張立和老師及其研究生研究成果,在顯著性目標檢測領域有很大影響,最近好像也擴充發表在了pami期刊上。

插講了一些其他內容,下面繼續回到主要內容。

markov性質可以看作是markov隨機場的微觀屬性,那麼其巨集觀屬性就是其聯合概率的形式。

假設mrf的變數集合為

s={y1,...yn},

p(y1,...yn)= 1/z * exp

其中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的。

2.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之和。

2.4. 訓練

通過一組樣本,我們希望能夠得到crf對應的分布形式,並且用這種分布形式對測試樣本進行分類。也就是測試樣本中每個隨機變數的取值。

在實際應用中,clique-potential主要由使用者自己定義的特徵函式組成,即使用者自己定義一組函式,這些函式被認為是可以用來幫助描述隨機變數分布的。而這些特徵函式的強弱以及正向、負向是通過訓練得到的一組權重來表達的,這樣,實際應用中我們需要給出特徵函式以及權重的共享關係(不同的特徵函式可能共享同乙個權重),而clicque-potential本質上成了對應特徵函式的線性組合。這些權重就成了crf的引數。因此,本質上,圖的結構是使用者通過給出特徵函式的定義確定的(例如,只有一維特徵函式,對應的圖上是沒有邊的)還有,crf的分布成了對數線性形式。

看到這個分布形式,我們自然會想到用最大似然準則來進行訓練。對其取log之後,會發現,表示式是convex的,也就是具有全域性最優解——這是很讓人振奮的事情。而且,其梯度具有解析解,這樣可以用lbfgs來求解極值。

此外,也可以使用最大熵準則進行訓練,這樣可以用比較成熟的gis和iis演算法進行訓練。由於對數線性的分布形式下,最大熵準則和最大似然準則本質上是一樣的,所以兩者區別不是很大。

此外,由於前面兩種訓練方法在每一輪迭代時,都需要inference,這樣會極大地降低訓練速度。因此普遍採用另一種近似的目標函式,稱為偽似然。它用每個隨機變數的條件分布(就是給定其他所有隨件變數的分布)之積來替代原來的似然函式,根據markov性質,這個條件分布只和其鄰居有關(markov blanket),這樣在迭代過程中不需要進行全域性的inference,速度會得到極大的提公升。我自己的經驗表明,當特徵函式很多取實數值時,偽似然的效果跟最大似然的差不多,甚至略好於後者。但對於大量二元特徵(binary-valued),偽似然的效果就很差了。

2.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的大小是呈指數級的。所以,使用者要避免使用維數過高的特徵。

更深入研究可以閱讀這篇**:

efficient inference in fully connected crfs with gaussian edge potentials

Task04條件隨機場

條件隨機場 條件隨機場是一種判別式無向圖模型。條件隨機場試圖對多個變數在給定觀測值後的條件概率進行建模。給定x x1,x 2,xn y y 1,y2 y n x x 1,x 2,dots,x n y y 1,y 2,dots,y n x x1 x2 x n y y 1 y 2 yn 均為線性鏈表示的...

Task04 條件隨機場

理解條件隨機場最好的辦法就是用乙個現實的例子來說明它。但是目前中文的條件隨機場文章鮮有這樣幹的,可能寫文章的人都是大牛,不屑於舉例子吧。於是乎,我翻譯了這篇文章。希望對其他夥伴有所幫助。原文在這裡 想直接看英文的朋友可以直接點進去了。我在翻譯時並沒有拘泥於原文,許多地方都加入了自己的理解,用學術點的...

機器學習演算法筆記 4 條件隨機場

1.馬爾可夫鏈 通俗理解馬爾可夫鏈 假設乙個隨機過程中,t nt n tn 時刻的狀態x nx n xn 的條件發布,只與其前一狀態xn 1x xn 1 p x n x1 x2,xn 1 p xn x n 1 p x n x 1,x 2,x p x n x p xn x1 x2 xn 1 p xn ...