NeurIPS 2019丨是呆頭伯勞鳥還是南灰伯勞鳥?深度雙線性轉換幫AI準確區分

微軟研究院AI頭條發表於2019-12-04

雙線性特徵在學習細粒度影像表達上取得了很好的效果,但逐對計算卷積通道之間的資訊互動會帶來極大的計算代價,使得這樣有較強表達能力的操作無法在深層的神經網路中被多次使用,從而限制了其應用的有效性和廣泛性。

因此,我們設計了一種深度雙線性轉換模組,能夠深層地將雙線性表達應用在卷積神經網路中,來學習細粒度影像特徵。深度雙線性轉換模組主要透過引入基於部位表達的語義分組資訊,對組內的特徵進行雙線性操作和組間特徵進行整合來得到低維的雙線性表達,從而在深度神經網路中多次疊加使用雙線性操作。我們提出的深度雙線性模型在三個常用的細粒度影像分類任務上取得了明顯的提高,下文中我們將詳細介紹研究背景、實現細節以及實驗結果。

研究背景

細粒度影像分類(fine-grained image recognition)旨在區分同一個大類(比如鳥類、汽車、飛機等)裡面不同小類的影像之間細微的差別。這類問題的資料通常有兩個特點:

1)較強的結構性,比如所有的鳥類樣本都由鳥頭、鳥翅、鳥尾等部位組成,所有的汽車樣本都由車頭、車輪、車門等部件組成;

2)複雜的細節特徵,比如呆頭伯勞鳥(Loggerhead Shrike,圖1左)與南灰伯勞鳥(Great Grey Shrike,圖1右)相比,區別僅僅在於眼周圍的黑色條紋比較粗,這就要求演算法的特徵表達可以捕捉到這樣的細節。

基於這兩個特性,目前最好的細粒度分類方法主要可以分為兩類:基於部位檢測的表達學習和基於雙線性的精細特徵學習。

NeurIPS 2019丨是呆頭伯勞鳥還是南灰伯勞鳥?深度雙線性轉換幫AI準確區分圖1:細粒度影像的結構性和複雜的細節特徵基於部位檢測的表達學習需要顯式地定位到各個部位,並對定位到的部位進行放大、對齊等,來進一步得到更好的表達。這類方法通常會伴隨複雜的部位處理和較多的計算量,有很多方法還會因為將定位和分類分成兩個子任務而無法得到全域性最優解。基於雙線性的特徵學習透過對特徵向量進行外積操作來實現通道資訊之間的逐對互動,從而得到對細節資訊更好的表達。但受到極高維的雙線性特徵的影響,這類方法會大大增加引數量,而且只能被應用在神經網路的最後一層,作為一種池化操作。
深度雙線性轉換

針對以上問題,我們提出了“利用基於部位的語義資訊,得到一種低維而高效的雙線性表達”的構想,讓能夠表達豐富細節的雙線性特徵能夠很深地整合到卷積神經網路中,因此提出了深度雙線性網路(Deep Bilinear Transformation Network, DBT-Net)網路結構

NeurIPS 2019丨是呆頭伯勞鳥還是南灰伯勞鳥?深度雙線性轉換幫AI準確區分圖2:Deep Bilinear Transformation (DBT, 深度雙線性轉換)如圖2所示,“DBT”的輸入是影像的卷積特徵,首先根據部位的語義資訊將卷積特徵的各個通道分組,得到分組後的卷積特徵,對於每一個位置的特徵向量,進一步將這個特徵中同一個組內的通道進行雙線性操作,來得到針對這個部位的豐富的細節表達,再將不同組之間的雙線性表達求和得到低維特徵。最後,我們將這樣的表達進行向量化,來恢復成卷積特徵原本的維度。

我們透過設計一種語義分組的約束將卷積特徵的各個通道進行分組。由於卷積特徵的每一個通道對特定語義的影像模式響應比較高,描述某一個語義的所有卷積通道的響應會集中在相應的空間區域。因此我們設計了一種語義分組約束,要求同一個語義組內的卷積通道兩兩之間有儘可能大的空間交疊,而不同元件的通道盡可能沒有交疊。這種逐對的分組約束可以使後續的分組雙線性操作更好地捕捉針對每個語義塊的細節特徵。圖3展示了透過這種約束最佳化後的卷積通道組內和組間逐對的資訊互動,黃色高亮代表互動的數值比較大,紫色代表互動比較小。

NeurIPS 2019丨是呆頭伯勞鳥還是南灰伯勞鳥?深度雙線性轉換幫AI準確區分圖3:組內和組間逐對的資訊互動示意圖

我們設計的深度雙線性轉換模組可以很容易地整合到深度卷積神經網路的結構中。比如可以將其插入到傳統殘差塊(ResNet Bottleneck Block)的第一個卷積層和第二個卷積層之間來得到能夠融合雙線性特徵的殘差塊。如圖4所示,我們在傳統殘差塊的第一個卷積上施加語義分組的約束,將其變成語義分組層(SG),同時在後面插入一個分組雙線性操作(GB),並利用殘差連結將透過分組雙線性操作之前和之後的特徵加起來。這樣的雙線性特徵再透過3X3的卷積操作來進一步學習豐富的細節特徵。

NeurIPS 2019丨是呆頭伯勞鳥還是南灰伯勞鳥?深度雙線性轉換幫AI準確區分圖4:Deep Bilinear Block (深度雙線性殘差塊)

實驗結果

為了驗證我們提出的深度雙線性轉換的有效性,我們在三個常用的細粒度分類資料集上進行了實驗,分別是 CUB-200-2011 鳥類資料集,Stanford-Car 汽車資料集和 FGVC-Aircraft 飛機資料集。表1顯示了在 CUB-200-2011 資料集上(輸入影像解析度為224)深度雙線性殘差塊在不同階段融合的效果比較。我們可以看出,在最後一層使用分組雙線性表達會帶來一定的提升(1.1%),而將這種結構深層次的融入卷積神經網路之中可以帶來進一步的提升,比如再將 ResNet-50 後兩個階段的殘差塊都變成深度雙線性殘差塊會達到85.1%的分類精度。

NeurIPS 2019丨是呆頭伯勞鳥還是南灰伯勞鳥?深度雙線性轉換幫AI準確區分表1:深度雙線性殘差塊在不同階段融合的效果比較表2顯示了不同語義分組約束的效果比較,不加任何分組約束的分類精度只有79.85%,使用 MA-CNN 一文中提出的分組方法可以達到83.2%的精度,而利用我們提出的約束可以達到85.1%的分類精度。這體現了我們設計的逐對形式的分組約束對分組雙線性更加有效。
NeurIPS 2019丨是呆頭伯勞鳥還是南灰伯勞鳥?深度雙線性轉換幫AI準確區分表2:不同語義分組約束的效果比較

表3顯示了不同方法在三個常用細粒度影像分類任務上的實驗結果比較(輸入影像解析度為448)。實驗表明我們提出的深度雙線性網路可以在同樣使用 ResNet-50 作為基礎網路,而且特徵維度很低的情況下達到好的效果。我們將提出的深度雙線性應用到 ResNet-101 上,可以觀察到進一步的提升。

NeurIPS 2019丨是呆頭伯勞鳥還是南灰伯勞鳥?深度雙線性轉換幫AI準確區分表3:不同方法在三個常用細粒度影像分類任務上的實驗結果比較結語

本文我們透過引入語義資訊,提出了基於語義分組的雙線性轉換,大大降低了雙線性特徵的維度,使得雙線性操作可以被深層次地融入到卷積神經網路中。我們設計的深度雙線性網路在三個常用的細粒度影像分類任務上取得了明顯的提高。在後續的工作中,我們會研究深度雙線性轉換在底層特徵的應用。此外,我們還將把矩陣歸一化操作引入到深度雙線性轉換中,進一步增強其表達能力。

瞭解更多技術細節,請檢視論文:

Learning Deep Bilinear Transformation for Fine-grained Image Representation

論文連結:https://papers.nips.cc/paper/8680-learning-deep-bilinear-transformation-for-fine-grained-image-representation.pdf

程式碼連結:https://github.com/researchmm/DBTNet

相關文章