反向R?削弱顯著特徵為細粒度分類帶來提升

AAAI 2020 | 反向R?削弱顯著特徵為細粒度分類帶來提升

作者 | VincentLee

本文對發表於 AAAI 2020 的論文《Fine-grained Recognition: Accounting for Subtle Differences between Similar Classes》進行解讀。

AAAI 2020 | 反向R?削弱显著特征为细粒度分类带来提升

論文地址:https://arxiv.org/abs/1912.06842

論文提出了類似於dropout作用的diversification block,通過抑制特徵圖的高響應區域來反向提高模型的特徵提取能力,在損失函數方面,提出專注於top-k類別的gradient-boosting loss來優化訓練過程,模型在ResNet-50上提升3.2%,算法思路巧妙,結構易移植且效果也不錯,值得學習。

一、簡介

在FGVC(fine-grained visual categorization)上,一般的深度學習模型都是通過學習輸入圖片到輸出標籤的映射,這樣會導致模型傾向於專注少部分顯著區域來同時區分模糊的種群內(inter-class)相似性和種群間(intra-class)的變化

AAAI 2020 | 反向R?削弱显著特征为细粒度分类带来提升

圖 1

如圖1所示,一般的深度學習模型的attention經常密集地集中在小部分區域,因此只會提出有限的特徵。因此,論文建議分散attention來構建多樣的分佈在特徵圖上的特徵。因為在特徵層面進行attention分散,在預測時則需要反過來,例如只關注最相似的類別來提高模型的辨別能力。通過關注相似的類別以及分散模型的attention,論文實際是在讓模型避免對訓練集的overfiting,增加泛化能力。論文的主要貢獻如下:

  • 提出gradient-boosting loss,通過適當地調整梯度更新的幅度來解決高度相關類別的模糊部分;

  • 提出diversification block,掩蓋顯著的特徵,從而迫使網絡去尋找外觀相似的類別的不易察覺的不同點;

  • 論文提出的方法能夠加速模型的收斂以及提高識別的效果。

二、方法

AAAI 2020 | 反向R?削弱显著特征为细粒度分类带来提升

論文提出的方法能簡單地接到所有分類網絡中,結構如圖2所示。使用論文的方法,需要將主幹網絡的所有global pooling layer和最後的fully conntected layer替換成1x1 convolution,ouput channel等於類別數,模型主要包含兩個部分:

  • diversification module,用於迫使網絡去獲取更多不易察覺的特徵,而非專注於明顯特徵;

  • gradient boosting loss,使模型在訓練時專注於容易混淆的類別。

1、Diversification Block

考慮如圖2中個類別的多標籤分類任務,為訓練圖片,是對應的GT,diversification block的輸入是類別特定(category-specific)的特徵圖 ,由修改後的主幹網絡輸出。標記,其中是對應類別的獨立特徵圖。diversification block的核心思想是抑制中的明顯區域,從而迫使網絡去提取其它區域的特徵,主要面臨兩個問題:1) 抑制哪些特徵?2) 怎麼抑制?

1)Mask Generation

下面解釋如何產生用於指明抑制區域的mask,定義,是二值抑制mask對應特徵圖,1表示抑制,0表示不抑制。

  • Peak suppression

AAAI 2020 | 反向R?削弱显著特征为细粒度分类带来提升
AAAI 2020 | 反向R?削弱显著特征为细粒度分类带来提升

首先對特徵圖的峰值進行隨機抑制,因為這是對分類器最顯著的部分,是的峰值mask,'*'是element-wise的相乘,而是服從伯努利分佈的隨機值,即有的概率為1。

  • Patch suppression

AAAI 2020 | 反向R?削弱显著特征为细粒度分类带来提升

將每個分成多個固定大小的patch,定義l行m列的patch為,為patch的集合,

AAAI 2020 | 反向R?削弱显著特征为细粒度分类带来提升

對應的抑制mask,跟峰值的mask一樣,使用伯努利分佈對塊進行賦值,隨機值為1的塊將整塊進行抑制,

AAAI 2020 | 反向R?削弱显著特征为细粒度分类带来提升

由於只考慮非峰值點,因此將峰值點的值設為0,

AAAI 2020 | 反向R?削弱显著特征为细粒度分类带来提升

最後將兩種mask相加得到最後的抑制mask。

2)Activation Suppression Factor

AAAI 2020 | 反向R?削弱显著特征为细粒度分类带来提升
AAAI 2020 | 反向R?削弱显著特征为细粒度分类带来提升

在進行特徵抑制後,對特徵進行global average pooling來獲取最後的置信度

2、Gradient-boosting Cross Entropy Loss

diversification module用於發現更多不易察覺的細微特徵,而gradient-boosting loss則是避免容易混淆的類別的誤分。

1)Loss Function

AAAI 2020 | 反向R?削弱显著特征为细粒度分类带来提升

論文認為,目前使用最廣的交叉熵損失函數平均地考慮了所有的負類別,而在細粒度分類中,模型更應該關注相似的負類別,因此提出gradient-boosting cross entropy(GCE),只專注於top-k個負類別,

AAAI 2020 | 反向R?削弱显著特征为细粒度分类带来提升

首先定義為所有的負類別,,為所有負類別的得分,為負類別的top-k類別集合,將分別top-k集合和非top-k集合,

AAAI 2020 | 反向R?削弱显著特征为细粒度分类带来提升

對交叉熵進行改造,只考慮top-k類別的計算,k一般設置為15。

2)Gradient Boosting

AAAI 2020 | 反向R?削弱显著特征为细粒度分类带来提升AAAI 2020 | 反向R?削弱显著特征为细粒度分类带来提升

公式13和公式14分別是交叉熵和GCE的梯度回傳公式,

AAAI 2020 | 反向R?削弱显著特征为细粒度分类带来提升

根據公式10和公式11的定義,可以發現公式15的包含關係,

AAAI 2020 | 反向R?削弱显著特征为细粒度分类带来提升

因此可以推出GCE的梯度是要比交叉熵的梯度要大的,使用GCE能夠讓模型專注於區分混淆類別。

3、Training and Inference

diversification block僅在訓練階段使用,在測試階段不再使用,改為將完整的特徵圖輸入到global average pooling中。

三、實驗

AAAI 2020 | 反向R?削弱显著特征为细粒度分类带来提升

1、Quantitative Results

AAAI 2020 | 反向R?削弱显著特征为细粒度分类带来提升
AAAI 2020 | 反向R?削弱显著特征为细粒度分类带来提升

其中兩個數據集的結果如表2、表3所示,可以看到,論文提出的方法在效果上的提升還是挺不錯的,而且參數量比較小,在另外幾個數據集上,論文提出的方法也是比其它方法要出色。

2、Ablation Study

1)Diversification block (DB)

AAAI 2020 | 反向R?削弱显著特征为细粒度分类带来提升

使用diversification block能讓ResNet-50的性能提升0.8%。

2)Gradient-boosting loss

如表4所示,使用gradient-boosting loss能讓ResNet-50+DB從86.3%提升到87.7%,提升要比其它損失函數方法要好。

3)Suppressing Factor

AAAI 2020 | 反向R?削弱显著特征为细粒度分类带来提升

從實驗看出,抑制因子對實驗結果影響挺大的,選擇0.1的時候表現最好。

4)Choices of k

AAAI 2020 | 反向R?削弱显著特征为细粒度分类带来提升

top-k的數量選擇對結果影響也是比較大的,選擇top-15的時候效果最好。

5)Convergence Analysis

AAAI 2020 | 反向R?削弱显著特征为细粒度分类带来提升

從圖5可以看出,論文提出的方法收斂速度更快,儘管可以看到原始方法在訓練集上的準確率比論文提出的方法要好,但是在測試集的表現不好,這說明原始方法對訓練集有點過擬合了。

3、Qualitative Results

AAAI 2020 | 反向R?削弱显著特征为细粒度分类带来提升

從圖4可以看出,論文提出的方法提取了更多的特徵區域。

4、ImageNet Results

為了進一步驗證論文提出的模型的效果,在ImageNet上進行了實驗。由於論文的方法專注於難樣本,因此在50輪後的訓練才進行對比,可以看到論文的方法的效果在ImageNet上還是不錯的。

四、總結

論文提出了diversification block以及gradient-boosting loss,diversification block通過隨機抑制響應高的區域引導模型學習更多的不易察覺的特徵,有點類似dropout的思想,而gradient-boosting loss則讓模型專注於top-k個類別的學習,加大對應類別的梯度回傳,使得訓練收斂更快且提升性能。總體而言,論文的思路清晰,而且效果還是有的,可以實驗下,然後當作基本方法加入到平時網絡的架構中,特別是後面的gradient-boosting loss。


分享到:


相關文章: