本文記錄了博主閱讀論文《Conditional Random Fields as Recurrent Neural Networks》的筆記,代碼。更新於2019.04.21。
文章目錄
Abstract
諸如語義分割的像素級標籤任務在圖像理解領域非常重要。用神經網絡解決分割問題一個重要的困難是如何描繪視覺目標。爲了實現這個目的,這篇文章將CNN和CRF結合在一起。To this end, we formulate mean-field approximate inference for the Conditional Random Fields with Gaussian pairwise potentials as Recurrent Neural Networks.(這句話沒看懂)
這個提出的CRF-RNN是作爲神經網絡的一個插件,用於同時獲取CNN和CRF中所需要的屬性。重要的是,這篇論文中提出的方法將CRF完全建模進CNN,從而使得網絡可以用平常的反向傳播算法進行端到端訓練,避免了用於目標描繪的後處理方法。
Introduction
諸如語義分割和深度估計等底層計算及視覺問題,通常需要給圖像中的每個像素點分配一個標籤。儘管像素點個體的分類非常重要,但是爲了更高精度和準確率的類別分配,還需要考慮諸如圖像邊界(image edges)、外觀一致性(appearance consistency)和空間一致性(spatial consistency)等同等重要的問題。
對於像素標註問題,設計強大的特徵描述是一個關鍵挑戰。
Related Work
Conditional Random Fields
這一部分先簡單介紹一下用於像素級標註的條件隨機場(CRF, Conditional Random Fields),並說明本文中用到的符號。用於像素級標註估計的上下文中的CRF,將像素標籤建模成馬爾科夫隨機場(MRF,Markov Random Field)中的隨機變量。全局觀測(global observation)通常視爲圖像。
用表示與像素相關的隨機變量,其代表了分配給像素的類別,可以是預定義好的類別集合中的任何一個值。用表示由隨機變量組成的向量,其中代表圖像內元素的個數。
給定一個圖(Graph),其中;再給定全局觀測(圖像)。那麼,pair 就可以由吉布斯分佈(Gibbs distribution)建模成一個具有CRF特點的,形如。這裏成爲配置的能量,是配分函數(partition function)。後面爲了方便省略標註。
在對應[29]CRF模型的全連接模型裏(in the fully connected pairwise CRF model of [29]),分配給的一個標註的能量爲:
其中,一元能量部件(unary energy components)度量像素取標註的全局可能性(損失),成對能量部件(pairwise energy components)度量同時分配和給、的損失。
在本文的模型中,全局能量通過CNN獲取。粗略來講,這個CNN在不考慮平滑性和標註分配一致性的條件下估計每個像素的標註。成對能量(pairwise energy)提供了取決於圖像數據的平滑項(smoothing term),該項鼓勵給具有相似性質的像素點分配相似的標註。如[29]中的做法,論文作者將pairwise potentials(對勢?)建模成加權高斯函數(weighted Gaussians):
其中,對於的每個都是一個應用在特徵向量上的高斯核。由表示的像素的特徵向量是由圖像特徵得到的,比如空間位置和RGB值。這裏用了與[29]相同的特徵。函數稱爲標註兼容性函數(label compatibility function),捕獲不同標註對之間的兼容性。
最小化上述CRF能量函數就得到了給定圖像最可能的標註分配。由於直接最小化非常棘手,這裏採用了CRF分佈的平均場近似用於近似最大化後驗邊緣推理(posterior marginal inference),即用一個相似分佈近似CRF分佈。這個分佈可以寫成獨立邊緣分佈(marginal distribution)的乘積,即。接下來介紹用於近似均場推理(mean-field inference)並將其重新公示化成RNN的迭代算法的步驟。
A Mean-field Iteration as a Stack of CNN Layers
本文的關鍵貢獻之一是證明了CRF推理可以重新公式化爲RNN(Recurrent Neural Network)。爲了實現這個目的,論文作者首先考慮了下面算法[29]中總結的均場算法(mean-field algorithm)獨立步驟,並將其描述成CNN層。
他們觀察到,用於CRFs的filter-based近似均場推理的方法依賴於在每次迭代的均場近似上應用高斯空間和雙線性濾波器。不同於CNN中的標準卷積層(訓練結束後濾波器就固定了),這裏應用了保留邊界的高斯濾波器(edge-preserving Gaussian filters),其係數取決於圖像的原始空間和外表信息(spatial and appearance information)。這些濾波器有一個額外的優勢——儘管濾波器尺寸有潛力與圖像一般大,它們需要更少的參數。
要做成CNN層,需要可以計算損失梯度用於反向傳播。所以這裏討論瞭如何計算損失梯度和整個網絡訓練過程中如何自動優化。當算法中的每一步都可以用CNN層表述時,整個算法就可以用一個RNN表述了。
這裏用表示前面節引入的負單能量(negative of the unary energy),即。在傳統CRF設置中,這個均場算法的輸入是通過一個獨立的分類器得到的。
Initialization
算法的初始化過程,進行操作,其中。注意,這裏等同於對整個unary potentials across all the labels at each pixel應用了一個softmax function。
Message Passing
在稠密CRF公式化中,信息傳遞是通過對個值應用個高斯濾波器實現的。高斯濾波器的係數是基於圖像特徵(如位置、RGB值)得到的,反映了一個像素與其他像素聯繫的強弱。既然CRF是潛在全連接的,每個濾波器的感受野都擴展到整個圖像,所以沒有辦法蠻力應用濾波器。幸好存在近似技術,能夠快速計算高維高斯濾波器。與[29]一樣,這裏應用了Permutohedral lattice implementation,可以以時間計算濾波器響應,其中是圖像中像素點個數。
根據[29],這裏用了兩個高斯核:一個空間核(spatial kernel)和一個雙線性核(bilateral kernel)。本文工作中,爲了簡化,控制濾波器帶寬固定。
Weighting Filter Outputs
平均場迭代的下一步就是用對前面步驟的M個輸出對每個類別標註應用加權求和。當每個類別都被獨立考慮時,這個就可以看作是一個有M個通道的1x1的濾波器,輸出通道數爲1。既然這一步的輸入和輸出在反向傳播的過程中都是已知的,則可以計算誤差,也就可以自動學習濾波器的權重。
爲了得到更多可以調參的參數,這裏與[29]不同,對每個類別應用了獨立核權重。這麼做的考慮是對於每個視覺類別空間核和雙線性核的相對重要性。比如,雙線性核可能一方面在自行車檢測上更重要,因爲相似的顏色更具有話語權;另一方面,它們可能在電視的檢測上沒那麼重要,因爲電視屏幕上可能顯示各種顏色。
Compatibility Transform
在兼容性變換(compatibility transform)這一步,前步的輸出(在Algorithm 1中用表示)在標註和變化的範圍內是共享的,取決於這些標籤之間的兼容性。標註和之間的兼容性由標註兼容性方程(label compaitibility function)參數化。波特模型(potts model)由給定,其中是艾弗森括號(Iverson bracket),設置一個固定的懲罰項給兩個不同標籤被標註給具有相似特性的兩個像素。
這個模型的一個限制是,其分配相同懲罰項給所有不同標註對。直觀上,把不同標註對之間的兼容性考慮進去並有針對性地懲罰的效果會更好。比如,分配給“人”和“自行車”給相鄰像素點的懲罰應該比分配“天空”和“自行車”要小。因此,從數據學習函數更好,而不是直接用波特模型固定。爲了放鬆兼容性變換模型,論文作者還假設是普遍的。
兼容性變換步驟可以被視作是另一個卷積層,其中濾波器的空間感受野爲1x1,輸入和輸出通道數都是L。習得這些濾波器權重等同於學習標註兼容性函數。既然是普通卷積,就可以和其他層一樣進行訓練。
Adding Unary Potentials
在這一步,一元輸入(unary inputs)按像素減去兼容性變換步驟的輸出。這一步不需要參數。反向傳播可以直接把輸出的error傳遞給輸入。
Normalization
最後,迭代過程的歸一化步驟可以考慮成另一個softmax操作,只是沒有參數。反向傳播操作與softmax相同。
The End-to-end Trainable Network
這一部分介紹用於語義圖像分割的端到端深度學習系統。首先介紹如何將重複均場迭代變成RNN形式。
CRF as RNN
前面的章節已經介紹了一個均場算法可以變成CNN層的形式描述出來,如下圖所示。
這裏用函數表示一個均場迭代(mean-field iteration)描述的變換:給定圖像,像素級unary potential values 和一個由前面迭代得到的marginal probabilities ,經過一個均場迭代的邊緣分佈(marginal distribution)由給定。向量,其中,代表前面描述的CRF參數。
多均場迭代可以通過重複上面堆疊的層實現,每次迭代從前一次迭代取個估計值,一元值是其原始形式。這跟下圖將迭代均場推理視作循環神經網絡(RNN, Recurrent Neural Network)是一樣的:
用圖中的定義,網絡的行爲由下式定義,其中是均場迭代次數:
作者稱這個RNN結構爲CRF-RNN,其參數與前面描述的均場參數相同,這裏用描述。[29]中已經證明了,均場迭代算法用於稠密CRF可以在少於10次迭代下收斂。在大概5次迭代後,增加迭代的次數並不會顯著提升結果。因此,這不會遭遇深度RNNs的梯度消失和爆炸的問題。
Completing the Picture
本文方法包括一個全卷積網絡揭短,用於在不考慮結構的基礎上估計像素級標註;後面跟了一個CRF-RNN階段,實施基於CRF的概率圖建模用於結構估計(CRF-based probabilistic graphical modelling for structured prediction)。整個系統因此結合了CNN和CRF的功能,可以實現反向傳播算法的端到端訓練(SGD)。
訓練過程輸入整幅圖像,計算像素級的損失。用FCN-8s結構作爲網絡的第一部分,用於給CRF提供potentials。這個網絡基於的是VGG-16,但是用於像素級估計而非圖像分類,因此作了一定的改造。
Implementation Details
用Caffe框架,初始學習率,動量0.99。CRF-RNN均場迭代次數5,用Potts model初始化
損失函數爲標準softmax loss function,即[30]中描述的log-liklihood error function。
Experiments
Effect of Design Choices
Conclusion
更多內容,歡迎加入星球討論。