Conditional Random Fields as Recurrent Neural Networks算法
ICCV2015 cite237 網絡
1摘要:dom
像素級標註的重要性(語義分割 圖像理解)-- 如今開始利用DL----但DL沒法描述visual objects----本文引入新型的CNN,將CNN與CRF機率圖模型結合---用高斯pairwise勢函數定義的CRF做爲RNN,記爲CRF-RNN----將其做爲CNN的一部分,使得深度模型同時具備CNN和CRF的特性,同時本文算法完美結合了CRF和CNN,弄成了一個端對端的系統,能夠由反向傳播訓練,避免了物體描述的問題。----在語義分割問題上測試,在Pascal VOC2012上取得最高結果。ide
2 Introduction函數
像素標註應用場景:底層視覺中的語義分割、圖片深度估計,以前是特徵表示來作,會考慮其餘因子好比邊、視覺連續性、空間連續性等。學習
找出合適的特徵表示很重要,不少人作:隨機森林等。最近CNN成功應用在high-level的視覺問題上,如識別、檢測等----->研究CNN在像素標註上的應用。都在研究用深度模型學出一個更深層更有效的特徵,替代以前的手工特徵。FCN,DeepLab等證明有效。測試
CNN從highlevel視覺問題轉化爲像素標註有挑戰:1)CNN的卷積層,濾波器有大的感覺野,當產生像素級的標籤時會使結果很是粗。而maxpooling更加重了這一現狀。2)CNN不考慮平滑約束,類似像素並不被鼓勵相同的標籤,失去了空間和外觀的連續性。這將致使對物體的理解不夠,且會產生假的區域。優化
機率圖模型走的與DL不同的路,用來對像素進行標註。MRF和其變體CRF在視覺領域取得成功。CRF在語義標註問題上的關鍵idea是將標籤分配問題轉化爲機率推理問題,基於一些假設,好比類似像素標籤一致等。CRF推理能夠精細化弱的、粗糙的像素標籤預測問題,從而獲得sharp的邊界以及精細的分割。因此,能夠用來克服CNN的不足。idea
一種方式使把CRF接在CNN後邊,改善CNN的標籤輸出。但這並不能充分利用CRF,由於沒有整合進DL模型中,深度模型作的時候並不知道CRF這回事(這理由,,?)。3d
本文:端對端的模型解決像素級標註,結合CNN和CRF。提出mean-field 近似推理,以帶有高斯pairwise的勢函數的密集CRF做爲RNN,在前向過程當中對CNN粗糙的輸出精細化,同時在訓練時將偏差返回給CNN。結合了CNN與RNN的模型能夠正常的利用反向傳播來端對端的訓練。
通過適當的訓練,咱們的模型會好於那種將CRF獨立的做爲CNN的後處理部分的模型。在Pascal VOC上取得了74.7%的正確率。
3 相關工做
將深度學習與CNN應用到low-level的視覺任務中,尤爲是圖像語義分割。---方法分爲兩類:
1)將其做爲獨立的特徵提取的方法,分割方法去尋找圖中的邊。---找出超像素塊,繼而找出圖中的結構模式,但一開始的proposal要是錯了,對後邊影響很大。又提出了RNN模型用於對空間依賴性建模。圖模型與CNN結合能夠達到更好的效果。
2)直接學習出一個將圖像映射到標籤的非線性模型。17中,將最後的全鏈接層替換爲卷積層,以保留空間信息。37中,FCN,頂層包含了物體識別的特徵,底層包含了圖像基本結構特徵,如邊。這些層之間的鏈接聯繫了這些特徵。10,41利用CRF調整CNN獲得的分割結果。還有經過物體識別來分割的等。咱們的模型同時學習CNN與CRF二者的參數,在統一的網絡中。
用神經網絡來預測結構化的輸出:14將深度神經網絡與馬爾科夫網結合,用於序列數據的標註。26說明CNN能夠在圖像恢復中與MRF或CRF表現一樣好。手寫數字識別也對CNN結合的挺好,在NLP,60說明基於RNN的詞語標註能夠經過整合CRF來提升效率,6中做者便結合了CNN與HMM,最近,45用了CRF的變體。25中,CNN和CRF用於語句識別,57同時訓練CNN與MRF用於人臉姿式估計,11用相同的方法作圖像分類。21用一種MRF做爲神經網絡的一層。咱們用另外一種圖模型(CRF)做爲神經網絡的層。
自動學習圖模型的參數,同時訓練分類器與圖模型。4在其Active隨機場方法中同時訓練MRF或CRF與一種推理算法。15提倡在圖模型中使用反向傳播算法,當一種近似推斷方式如mean-field及信念傳播等被使用的時候。28使用了這一想法,二值化的密集CRF被用於人臉姿式估計。47,54與之類似,說明了信念傳播能夠優化模型參數。。。。
咱們方法說明了將密集CRF做爲RNN是可行的,這樣能夠創建一個整合了深度學習與圖模型的端對端的系統用於圖像語義分割。
4 CRF
CRF用於像素級別的標籤預測,將像素標籤視爲隨機變量,構建一個以全局爲條件的馬爾科夫隨機場,這個全局條件通常取爲對應的圖片。
本文中X相關的是對於像素的標註,是隨機變量,是預先定義好的共L個。圖G=(V,E),V即是N個像素的標註X,圖片,也即全局條件,記爲I。I和X的關係能夠由CRF來建模,定義爲一個Gibbs分佈:P(X=x | I)=。E(x)是x取某個值的能量,Z(I)是配分函數。
在全鏈接的pairwise的CRF(29工做)中,,其中,一元的前半部分衡量像素標註爲x的cost;二元的後半部分衡量兩個像素同時取這兩個標註的cost。本文中,一元的損失由CNN計算而來,能夠說是不考慮平滑與連續性的預測值。後半部分二元的則給出了依賴於具體圖像的平滑項,使得類似的像素更有可能標註同樣。這個二元的勢函數被定義爲混合高斯(賦予不一樣的權重):
.選用M個高斯核做用於特徵向量f上,f通常由位置或RGB直接得來。μ爲標籤兼容性函數,定義各標籤對之間的兼容性(未給具體形式?應該各個對對應的值早就知道做爲先驗嗎)。
最小化CRF的勢函數E(x)能夠得出標註結果,但這個過程很複雜,因此有了mean-field近似方法,近似最大後驗的邊緣分佈進行推理。他用簡單化的Q(X)近似CRF的P(X),Q可被寫爲各個獨立的邊緣分佈的積。
5 Mean-field 迭代做爲一堆CNN層
本文的主要貢獻就是說明了Mean-field CRF推理能夠被公式化爲RNN。爲此,咱們先由算法1給出Mean-field算法的單步運行狀況,而且將他們描述維CNN的層。
(先初始化各個標籤的邊緣分佈,而後將高斯核應用在各個i和j像素上,得出二元的勢函數,而後,將M個勢函數加權求和,而後考慮標籤對的相容性,算出這個標籤最終的二元狀況下的邊緣分佈,接着,加上一元的勢函數的影響(爲什麼變爲減去?),最後用配分函數歸一化)。這樣一層一個任務,便將CRF變爲RNN。
本文的貢獻在與咱們觀察到密集CRF中基於濾波的mean-field推理方法依賴於在每個迭代中將高斯空間及雙邊濾波器應用於mean-field近似中。CNN中的濾波器在訓練後就固定了,而咱們使用的是保留邊的高斯濾波器,其參數依賴於圖像原始的空間及外觀信息。
因爲將推理過程改爲了CNN的層,所以須要可以計算每一層相對於其輸入的偏差,從而能夠在反向傳播時傳給其前一層。因而,咱們模型中CRF的參數如高斯核的參數、標籤相容性函數(原來是網絡學的)等能夠在訓練網絡時自行決定。
介紹算法1:U表示負的一元能量函數(因此算法中會出現負號),,在傳統的CRF中,這些U通常由獨立的分類器獲得。
5.1 初始化
(對各個步驟的解釋)
6 端對端的可訓練的網絡
爲了介紹咱們的端對端的用於語義分割的系統,咱們先解釋重複的mean-field迭代過程是如何被重寫爲RNN的。
6.1 CRF as RNN
在以前已經介紹了算法的一次迭代是能夠被表示爲多個CNN層的,圖1。咱們用f_\theta 來表示一次迭代所帶來的轉化:有圖片I,像素級別的一元勢函數U和邊緣分佈的估計Q,則mean-field一次mean-field迭代以後的下一步的邊緣分佈的估計即是f_\theta(U,Q,I)。向量\theta爲參數w(M個)和\mu。
多層mean-field迭代能夠經過重複上述過程實現,每一次迭代的Q的估計來自於以前的一次迭代過程的結果,一元的勢函數仍是保留原先的形式。這等價於將mean-field推理視爲圖2所示的RNN。網絡的表現由下邊的式子表示,T是迭代次數:
(門函數是固定的,H1開始是由softmax做用於U上得來,後邊取H2上一時刻的值,,兩個G均無做爲。)
咱們稱此爲CRF-RNN。模型的參數能夠在RNN中由標準的反向傳播學得。29說明了密集CRF 的mean-field算法能夠在少於10次的迭代內收斂。另外,實際使用時5次以上再增長就不會怎麼變化了。所以,他不受RNN固有的梯度消失和梯度爆炸的影響。這也容許咱們使用一些較簡單的(plain)RNN模型而不是複雜如LSTM的算法。
6.2 完成圖片標註
咱們的模型包含一個全卷積網絡,不考慮圖片結構直接預測像素標註,而後跟着一個CRF-RNN模型,以基於CRF的機率圖模型來考慮結構的建模。因此這個模型結合了CNN和CRF的特性,可經過反向傳播BP和隨機梯度降低SGD等端對端的訓練。訓練時,整個圖像被用做mini-batch,網絡對每一個像素輸出的值關於真實分割的偏差能夠由一個適合的loss函數如softmax計算出來。咱們用FCN-8s結構做爲模型的第一部分,爲CRF提供一元的勢函數。基於改變後的VGG-16,能夠用來進行像素級別的預測。
在前向傳播時,一旦完成了CNN部分,轉到CRF-RNN中計算,數據會進行T次迭代纔會離開RNN的循環。提供U的CNN以及CRF-RNN後邊的部分如loss層在此期間均不須要計算,由於調整,精細化過程只發生在RNN循環內部。一旦輸出Y離開了循環,softmax損失層便執行計算並做爲網絡的終止。
在反向傳播中,一旦偏差傳到了CRF-RNN的輸出Y上,在傳到輸入U以前也是會進行T次迭代。在每次RNN內部的迭代中,偏差均會在各個部分之間計算,如算法1。
7 實現細節
8 實驗
9 總結