論文標題:The Devil is in the Channels: Mutual-Channel Loss for Fine-Grained Image Classification
來源:IEEE TIP 2020
針對目標:細粒度圖像分類
下載地址:https://arxiv.org/abs/2002.04264
github地址:https://github.com/PRIS-CV/Mutual-Channel-Loss
首先,說說這篇論文的優點:簡單,高效,易於實現。這篇論文相比於SOTA的其餘方法,代碼量少,只是在常用的網絡結構上加入了一個輔助結構。並且,該輔助結構沒有引入額外的網絡參數,只包含正則化,池化等操作,就達到了SOTA的效果。
創新點: 在細粒度圖像分類任務中引入了互通道損失,由 判別性組件 和 多樣性組件 組成。
網絡結構
通過觀察網絡結構圖,可以看出來:該網絡僅僅是在常規的圖像分類網絡結構下,加入了一個互通道損失。Feature channels 是之前 Conv.layers 的最後一個卷積層輸出的特徵圖, 使得網絡專注於全局判別性區域, 則使得網絡專注於局部判別性區域。
邀請主角登場 – MC-LOSS
(a)圖左側通道的判別性組件,(a)圖右側通道的多樣性組件。(b)圖表示使用了 前後的特徵圖變化,可以看出,使用 之後,得到了了判別性區域,且不同特徵圖的判別性區域各不相同。
假設,(a)圖中的輸出特徵圖 爲通道,總共 個類別, 表示每個類別中特徵圖的個數。那麼: .
判別性組件的構成:
- CWA: Channel-Wise Attention,通道注意力機制。與其他論文中(如SE-Net)的通道注意力機制有所差別,雖然也是通道加權,但是本論文的權值只有0和1。所以,本文的CWA有點類似於Dropout隨機失活,不過Dropout是在空間域,CWA是在通道域。比如,有10個類別(c=10),共有40通道的特徵圖(N=40),此時每個類別4個通道的特徵圖(ξ=4)。 經過失活概率爲0.5的CWA之後,雖然輸出也是 通道,但是其中有 通道的特徵圖中所有的值都歸爲0了。並且失活與類別也有關,相應的,每個類別中通道失活概率也爲0.5,也就是說每個類別有2個通道(ξ/2)失活了。
CWA的作用: 強制讓每個通道努力學到充足的判別性信息。因爲每次迭代的時候,原先每個類別特徵圖有一半(ξ/2)都置零了,爲了能夠進行分類,那剩下的特徵圖的任務就更大,更需要去學習判別性信息。 - CCMP: Cross-Channel Max Pooling,跨通道的最大池化。將每個類別中所有通道的最大響應值全部放在一張特徵圖上。原則上,越具有判別性的點,響應越大。關於CCMP的具體實現,可以參考我的另一篇博客:cross channel pooling 的原理與代碼實現
CCMP的作用: 通道降維,得到c通道的特徵圖。 - GAP: GlobalAveragePooling,全局平均池化,應用非常廣泛,能夠將(b, c, w*h)的特徵圖池化爲(b, c, 1)的特徵圖。
GAP的作用: 空間降維。 - Softmax: 打分,用於分類。
判別性組件的功能: CWA和CCMP的協作,使得網絡能夠專注於各種類別的判別性區域。
多樣性組件的構成:
雖然判別性組件能夠專注於各種類別的判別性區域,但是,仍然無法保證大部分判別性區域都被定位了,於是引入了多樣性組件。
- Softmax: 正則化。
- CCMP: 和上文中的CCMP一樣的作用,得到c個通道的特徵圖。
- Sum: 將每個特徵圖上所有元素求和,每個通道只有一個元素。
- Average: 將所有通道的值求平均。
越大越好。越大,每個類別中個通道的特徵圖,專注的區域越分散。
如上圖,假設輸入特徵圖經過softmax之後,得到極端情況,每張圖上,只有一個點爲1(紅色點),其餘全爲0(橙色點)。再經過CCMP和Sum後計算結果。當判別性區域越分散,累加值越高(ξ)。當每個特徵圖上,判別性區域都一樣時,那麼CCMP之後的特徵圖,只有一個點爲1,於是Sum之後,累加值最小(1)。另外,多樣性組件的存在是以判別性組件的存在爲前提,若沒有判別性組件,那麼多樣性組件將毫無意義。
MC-LOSS: .
實驗
1.與SOTA模型比較
2.與其他分類損失函數比較:
參考鏈接:
https://blog.csdn.net/u013347145/article/details/105568990
https://zhuanlan.zhihu.com/p/106922799