1. 前言
最近看了一些有關於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的概率分別是p00p00、p01p01、p02p02、p03p03。那麼我們可以將所有狀態的一步轉移概率放到乙個**中,表示為轉移概率表,其中每一行的每個資料為對應行狀態轉移到其他狀態的概率。因為表示下個狀態出現在各個節點的概率,狀態不可能憑空消失,所以每一行的概率和一定為1。那麼如果把這些資料儲存到乙個矩陣中,則是轉移矩陣(transition matrix)。如下圖:
關於馬爾科夫鏈這塊的理解可以參考下面博文:
其實構建轉移概率,哪些節點相連通是需要深入研究的,它決定了在後面計算中,哪些節點會產生相互影響。上面的表中其實也反映了,概率大於0的表示之間節點是相互連線的,後面迭代計算其特徵或者性質會對其連線的節點產生影響。當這種相互影響通過迭代到無窮趨於穩定,反應的則是穩態後狀態的分布。
markov性質是指,對markov隨機場中的任何乙個隨機變數,給定場中其他所有變數下該變數的分布,等同於給定場中該變數的鄰居節點下該變數的分布。這讓人立刻聯想到馬式鏈的定義:它們都體現了乙個思想:離當前因素比較遙遠(這個遙遠要根據具體情況自己定義)的因素對當前因素的性質影響不大。
圖中只畫了乙個超畫素和鄰接超畫素的連通性,以及邊界超畫素的連通性。而各個節點之間的邊權重則是由lab顏色特徵的歐氏距離決定,越相似值越大,最後每一行標準化就構成了上面類似的轉移矩陣。作者設定初始狀態在邊界上,即由邊界先驗性質的邊界超畫素為背景,然後通過轉移概率迭代平滑,當達到收斂取反則高亮處為顯著目標區域。當然,作者還經過了二次遊走排序,具體內容請讀者自行閱讀研究。
/*****/
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個人學習記錄,由於能力和時間有限,如果有錯誤望讀者糾正,謝謝!
機器學習之條件隨機場(CRF)
crf即條件隨機場 conditional random fields 是在給定一組輸入隨機變數條件下另外一組輸出隨機變數的條件概率分布模型,它是一種判別式的概率無向圖模型,既然是判別式,那就是對條件概率分布建模。crf較多用在自然語言處理和影象處理領域,在nlp中,它是用於標註和劃分序列資料的概率...
機器學習演算法 Task04條件隨機場(CRF)
最近看了一些有關於crf的 基本概念懂,但是到求解的部分有些疑惑。crf問題容易構成np hard問題,求解過程還需要再學習。下面稍微介紹一些crf的學習吧,這裡前面crf內容主要參考了下面博文,講的非常好 條件隨機場 conditional random fields 是一種判別式圖模型,因為其強...
機器學習 條件隨機場模型
有了強大的log linear模型,連水槽都能拿來做分類特徵了,當然要想辦法用一下試試了。log linear模型的輸入是一系列幾乎接近自然語言的特徵方程,這種抽象的東西拿來做語義識別自然是再好不過了。語義識別有乙個重要的步驟,叫做 給句子貼標籤 簡而言之,就是給定乙個句子,通過識別其中一些特徵 比...