論文學習 about CAM
Learning Deep Features for Discriminative Localization
利用global average pooling(gap)層展示卷積神經網路卓越的定位能力。基於gap的網路結構能夠對不參加訓練的圖片定位區別圖片區域。
前期的研究發現,儘管目標位置沒有提供,但是CNN不同層的卷積單元實際上像目標檢測器一樣工作。但是當使用全卷積層來進行分類後,卷積單元的這一特性便失去了。一些網路如Network in Network(NIN)和GooLeNet建議停止使用全連接層,在保持高性能的前提下,最小化參數數量。
在分類CNN中,一般使用全連接層(fc)作為最後的層次,但是fc有一些致命的缺點:
80%~90%的參數量在fc上。
容易過擬合
要求輸入和輸出的矩陣的大小保持fixed,很不方便。
隨著fc的使用,localization的信息也丟失了。
一般情況下,gap層 作為一種結構正則化項,來防止過擬合現象,但是通過一些技巧,可以發現,除了作為正則化項,gap層在最終層之前都具有較佳的定位能力。
包含CAM技術的gap層使得基於分類問題訓練的CNN既能夠分類圖片,也能完成特定類別圖片區域的定位。
基於CAM的可視化技術可以直觀的展示圖片的哪部分區域被用於進行分類。
本文利用CAM技術關注兩個領域的研究:弱監督目標定位和CNN內部描述的可視化。
與本文相似的研究工作是利用global max pooling層來進行研究,但是相關可視化工作使用邊界內的點展示,而不是描述全部目標。
對特定種類的CAP展示CNN用於分類的區分圖片區域,高亮部分意味著對於該區域對分類有著更重要的作用。
9.分類區域中使用GAP代替了fc,意思是通過多次卷積最後會得到一組解析度更小的特徵圖,對所有的特徵圖進行上採樣到輸入圖像的大小得到feature map,對每個feature map求平均值,得到一個數值序列,再用分類器對這個序列進行全職的分配,便可以做到分類的過程。
10.定位的區域是在分類的基礎上做的,由於某種神奇的原因,GAP得到的平均值可以很好地代表源特徵圖譜,所以對應的權值也可以繼承給源特徵圖譜。通過簡單的權值相乘相加,就可以得到對應的定位的熱力圖。這就是CAM。
11.設
是最後一層卷積層第k個通道位於(x,y)處的激活值,
是GAP後第k個通道的結果。則對於給定類c,Softmax的輸入
,其中wck對應類c及通道k的權重係數。綜上,有
設
, 則
反應了(x,y)的激活值對於類c的重要程度。這樣就得到了一個(7 * 7)的Class Activation Mapping,再將CAM放大到輸入圖片的大小與原圖片疊加,就能獲得最後的演示效果.
12.
對於不同圖片,其對應類別CAM圖不同,證明不同種類的分類關注要點不同,
對於同一圖片,取top5種類CAM圖,可觀察分類對不同類別判定的依據有所差異。
13.
上面這張圖是作者實驗中設計的網路結構,其實就是把原來的一個fc層替換成了GAP層,之後接一個fc層用來分類。首先可以訓練一個分類的網路,然後利用訓練得到的最後fc層的參數作為權重,對前面的conv層的feature map進行加權平均,最後就得到了class activation map。(w1,w2…,wn)是對gap之後的特徵進行加權平均,其實也就是對gap之前的每一層feature map進行加權平均。比如說我們可以拿出負責預測澳大利亞犬的那組參數(w1,w2,,,wn),對前面的最後一個卷積層的n張feature map進行加權,就可以得到澳大利亞犬的class activation map,這張map上激活值越大的地方,表示這個地方又有可能是屬於澳大利亞犬,對這張class activation map求平均,其實就是這張圖屬於澳大利亞犬的概率,也就是圖上的灰色圓對應的值。我們去找class activation map上的熱區,其實就是在對物體進行定位。
14.GAP與GMP的區別
二者分類性能相近,但是GAP具有更好的定位性能。
15.GAP的理解
global average pooling 與 average pooling 的差別就在 "global" 這一個字眼上。global 與 local 在字面上都是用來形容 pooling 窗口區域的。 local 是取 feature map 的一個子區域求平均值,然後滑動這個子區域; global 顯然就是對整個 feature map 求平均值了。
因此,global average pooling 的最後輸出結果仍然是 10 個 feature map,而不是一個,只不過每個 feature map 只剩下一個像素罷了。這個像素就是求得的平均值。
其實就是表示global average pooling是對每個feature map內部取平均,每個feature map變成一個值(因為kernel的大小設置成和feature map的相同),10個feature map就變成一個10維的向量,然後直接輸入到softmax中。
16.對於本文提到的網路如AlexNet,VGG,GoogLeNet,將最終輸出前的全連接層移除,替換成GAP+全連接的softmax層。
17.試驗發現,在GAP層前面的卷積層如果解析度高對定位能力有提升,故移除了網路中的某些卷積層來達到提升解析度的目的。相關網路設置見p4
18.實際上,採用GAP方法會使得網路的分類準確率有小幅度下降,但是其定位能力顯著增加。
19.GAP CNN在不同類型數據集上訓練後,能夠對相應類型數據集特點進行可視化特徵展示,例如在動作數據集StanFord Action40和UICC Event8中,清掃地板類圖片重點辨別區域包含拖把,烹飪圖片重點辨識區域包含平底鍋。
TAG:肥咪博士小劇場 |