ConvCRF:一種結合條件隨機場與CNN的高效語義分割方法

ConvCRF:一種結合條件隨機場與CNN的高效語義分割方法

來自專欄機器之心59 人贊了文章

選自arxiv,作者:Marvin T. T. Teichmann、Roberto Cipolla,機器之心編譯。

語義分割等結構化預測任務可以從條件隨機場等概率圖模型獲取很多優勢,但由於條件隨機場的訓練速度及訓練難度,目前研究者基本上都僅使用卷積網路進行處理。本文提出了一種卷積條件隨機場,它能以卷積運算的方式解決 CRF 的兩個大問題,並結合 CNN 實現更好的語義分割效果。

語義圖像分割旨在為圖像中的每個像素生成分類標籤,是視覺感知中的一個重要任務。卷積神經網路已在解決語義分割任務上取得了很好的效果 [23,6,7,40]。雖然深層神經網路在提取局部特徵和利用小感受野進行良好預測方面效果顯著,但它們缺乏利用全局上下文信息的能力,無法直接建模預測之間的相互作用。因此,有人認為,簡單的前饋卷積神經網路也許並不是完成類似語義分割等結構化預測任務的最佳選擇 [40,20,41]。為了解決上述問題,一些研究者成功地將卷積神經網路的有效性與條件隨機場的建模能力相結合,以獲得更好的性能 [20,4,41]。儘管結構化模型的成功是無可爭議的,但在最近的方法和研究成果卻鮮有人問津 [37,7,40]。

我們認為,導致這一現狀的主要原因是條件隨機場的學習速度非常緩慢,且難以優化。如何為條件隨機場等結構化組件學習特徵仍然是一個開放性研究問題 [36,20],許多方法完全依賴於手動設定的高斯特徵 [17,41,31,6]。此外,條件隨機場的推斷比卷積神經網路的推斷要慢兩個數量級,這使得基於條件隨機場的方法在許多實際應用中的運行速度很慢。而當前條件隨機場較長的訓練時間,也使得人們無法進行更加深入的研究和實驗。

為了解決這兩個問題,我們提出將條件獨立性這一強假設添加到現有的全連接條件隨機場(FullCRF)框架中 [17]。這使得我們可以將大部分推斷重新表達為可以在 GPU 上高效實現的卷積操作,我們稱之為卷積條件隨機場(ConvCRF)。反向傳播 [30] 可用於訓練 ConvCRF 的所有參數,ConvCRF 中的推斷可以在不到 10ms 的時間內完成。與 FullCRF 相比,可以獲得一到兩個數量級的速度提升。我們相信,訓練和推斷上的速度提升將大大有利於未來的研究,同時我們也希望它可以幫助條件隨機場重新成為解決結構化任務的流行方法。

卷積條件隨機場

卷積條件隨機場(ConvCRF)用條件獨立假設補充 FullCRF。如果兩個像素 i,j 的曼哈頓距離 d 可以保持 d(i, j) > k 的關係,那麼我們認為他們的標籤分布是條件獨立的。其中我們把超參數 k 稱為濾波器尺寸。

局部性假設是一個非常有力的假設,它暗示所有距離超過 k 的像素,成對相關性為零。這極大地降低了潛在成對性的複雜性。因為卷積神經網路基於局部特徵處理可以取得很好的效果,那麼我們也可以認為該假定在卷積神經網路上也是有效的。這使得卷積條件隨機場的理論基礎看起來很有前景,因為強大而有效的假設構成了機器學習建模的重要力量。

卷積條件隨機場中的高效信息傳遞

本文的主要貢獻之一是證明信息傳遞在卷積條件隨機場中是高效的。因此我們不需要使用 Permutohedral lattice 近似,從而可以進行高效的 GPU 計算和完整的特徵學習。為了實現這個目標,我們將信息傳遞步驟重新配置為帶截斷高斯核的卷積,並注意到這非常類似於 CNN 中的常規卷積實現。

考慮形狀為 [bs,c,h,w] 的輸入 P,其中 bs,c,h,w 分別表示批大小,類別數量,輸入高度和寬度。對於由特徵向量 f_1 ... f_d 定義的高斯核 g,我們為它定義一個大小為 [bs, h, w] 的核矩陣:

其中 θ_i 是可學習的參數。對於一組高斯核 g_1 ... g_s,我們定義經合併的核矩陣 K 為:

所有 s 個核的組合信息傳遞的結果 Q 如下所示:

這種信息傳遞操作類似於卷積神經網路中標準的二維卷積。然而,在我們的例子中,濾波器的值取決於空間維度 x 和 y。這與局部連接層相似 [8]。與局部連接層和二維卷積不同的是,我們的濾波器的通道維度 c 是不變的,我們一般可以將這種操作看作是維度 c^2 上的卷積。

通過僅使用標準的卷積神經網路操作來實現我們這種卷積是可能的。然而,這要求數據在 GPU 內存中重新組織好幾次,這是一個非常緩慢的過程。分析顯示 90% 的 GPU 時間開銷用於數據重組。因此,我們選擇建立一個本地的底層實現,以獲得額外 10 倍的加速。

我們可以通過類似於二維卷積(和局部連接層)來實現我們這種卷積的高效計算。第一步是平鋪輸入 P 以獲得形狀為 [bs,c,k,k,h,w] 的數據。這個過程通常被稱為 im2col,與二維卷積相同 [9]。二維卷積通過在空間維度上批量進行矩陣乘法來完成,我們用通道維度上的批量點積來代替這一步驟,其它所有步驟都是相同的。

實驗結果

圖 1:合成任務的可視化分析。特別是在最後一個例子中,我們可以在物體邊界處清楚地看到的來自 permutohedral lattice 近似的偽影。

實驗中,我們在訓練集的 200 幅留存圖像上訓練條件隨機場模型,並在官方 Pascal VOC 數據集的 1464 幅圖像上對它的性能進行評估。我們在表 2 中報告了我們的結果,圖 3 為模型輸出的可視化分析。

表 2:使用解耦訓練的條件隨機場在驗證集上的性能比較。+ C 表示模型使用卷積作為兼容性轉換,+ T 表示模型學習了高斯特徵。除了來自 DeepLab 的條件隨機場,其他模型我們都使用一元運算(unaries)。

圖 3:使用解耦訓練策略在 Pascal VOC 數據下的結果可視化。示例 2 和 4 描述了條件隨機場無法改進一元運算(unary)的失敗情況。

論文:Convolutional CRFs for Semantic Segmentation

  • 論文地址:arxiv.org/abs/1805.0477
  • 實現地址:github.com/MarvinTeichm

對於具有挑戰性的語義圖像分割任務,最有效的模型傳統上將條件隨機場(CRF)的結構化建模能力與卷積神經網路的特徵提取能力結合起來。然而,在最近的工作中中,使用條件隨機場進行後處理已經不再受到人們青睞。我們認為這主要是由於條件隨機場訓練和推斷速度太過緩慢以及其參數學習的難度所致。為了克服這兩個問題,我們提出將條件獨立的假設添加到全連接條件隨機場的框架中。這使得我們可以在 GPU 上高效地使用卷積操作重新進行推斷。這樣做可以將推斷和訓練加速超過 100 倍。卷積條件隨機場的所有參數都可以使用反向傳播輕鬆進行優化。為了促進 CRF 的進一步研究,我們還公開了相關的源碼。


推薦閱讀:

TAG:深度學習DeepLearning | 卷積神經網路CNN | 人工智慧 |