Abstract
這篇文章其實是CAM的進化版,主要是為了解決CNN模型的不可見問題,CAM論文中通過Class Activation Mapping技術將模型中感興趣的區域用熱力圖的方式區分出來。作者在這篇文章中提出了一個新的概念,叫做Grad-CAM,全稱Gradient-weighted Class Activation Mapping。與CAM不同的是,文章使用了感興趣、或者說是可指定類的梯度去指明了CNN模型是通過原圖中的哪一部分區域得到這個分類結果,并且這個方法可以很方便的擴展到目前的任意一個訓練完好的CNN模型中。通過合并Guided Backpropagation的結果,Grad-CAM還可以做到更細粒度的可視化分析,解釋了為什么模型將原圖分類到某一類的結果。Grad-CAM可以很方便的推廣到圖像分類、圖像描述和視覺問答等任務的可視化分析中。
Introduction
目前CNN在圖像分類、檢測和分割任務中廣泛使用并且被證明具有極高的實用價值,但是關于CNN結構的可解釋性,一直沒有一個比較好的結果。傳統方法中每一部分的模型都是手工設計的算子,它們都是基于研究人員的經驗和想法很直觀的設計得到的,具有較高的解釋性,但是在CNN模型中,深層模型和自學習的參數使得模型的解釋性變弱甚至于很難解釋,因此,找到CNN模型的可解釋性依據是什么重要的。
早一點的時候,CAM這篇文章受NIN結構的啟發,將網絡最后的全連接層替換成GAP(global average pooling),然后設置最后一層卷積層的輸出通道與待分類的類別數相同,這樣訓練出來的網絡,針對每一個類別都有與卷積輸出通道數維度相同的一維向量表示權值,通過加權累加可以得到解釋性區域,我們稱之為Class Activation Mapping。本篇文章提出的Grad-CAM其實是該種方法的一個擴展。作者認為一個好的可視化解釋應該具備兩個條件。
- 類別判別(具備圖像中的類別定位能力)
- 高分辨率(解釋性輸出能包含一些細粒度的細節)
針對細粒度可視化的解釋,導向反向傳播(Guided Backpropagation)和反卷積(Deconvolution)可以在高分辨率的圖像中體現一些圖像的細節信息。而全局的類別判別也就是感興趣區域可以使用梯度加權類激活映射圖(Grad-CAM)來表示。下圖是一個示例圖像。
上圖的第二列戰士的是根據指定類別指導反向計算出來的圖像細粒度可分類細節的可視化結果,第三列則展示了本文提出的Grad-CAM粗定位的結果,最后將兩者結合在一起之后滿足了上文中作者提到的一個好的可視化結果。在這篇文章中作者的主要貢獻為:
- 提出了一種類區分的定位技術叫做梯度加權類激活映射圖(Grad-CAM),并且可以將其擴展到任何一個基于CNN的技術架構中,提供一個網絡可視化、可解釋的能力。
- 為了解釋這項技術,作者對圖像分類、圖像描述和視覺問答都做了詳細的實驗研究和對比。
- 文章提到的技術指導了研究人員建立更加魯棒、準確的網絡模型。
Related Work
無(感興趣可以閱讀原文)
Approach
CAM方法可以很輕松的獲取CNN結構中對于感興趣類別的粗略定位,文章基于這個出發點,進一步的提出了可以將Guided Backpropagation和Deconvolution與CAM的思想結合在一起,完成細粒度的圖像可解釋工作。
Class Activation Mapping (CAM)
首先來看CAM方法,一個全連接層被替換成GAP,然后最后一個卷積層的輸出通道數設置成為待分類類別個數之后,分類任務可以表達為:
其中表示的是第
個特征圖的寬高為
和
,然后
表示的是計算出來的分類結果,其中
就代表了每一類的一個權重結果,通過全連接層得到。將這個權重按如下操作以后可以得到CAM的輸出圖。
其中的就表示的是特征圖的加權輸出結果,將其歸一化到0到1之間就可以畫出一個熱力圖對應著圖像中的類別感興趣區域。
Gradient-weighted Class Activation Mapping
在Grad-CAM方法中,作者直接通過特征圖導數來獲取特征激活圖,首先讓類別輸出結果對卷積層的輸出特征圖求導,如,通過計算可以得到類似于GAP求出的權重
,公式如下。
將與特征圖累加同樣能夠得到CAM的可視化結果,權重表示了目標類別
對特征映射的重要性。因為我們只關注特征圖中的正值對最后的分類結果影響,所以需要對權重加權的結果特征圖上再使用一個ReLU函數去除負值的影響。結果為:
Guided Grad-CAM
雖然Grad-CAM可以得到類區分的粗略定位,也即是視覺解釋區域,但是缺少了CNN模型為啥會將其分類成貓或者狗的細粒度信息。在前文中我們提到Guided Backpropagation和Deconvolution可以得到一些高分辨率的、細粒度的可視化分類依據。所以在這一部分,作者通過使用點乘的方式將這兩者結合在一起得到同時具備細粒度分類依據和粗定位的可視化結果,方法稱作Guided Grad-CAM。方法結構圖如下所示。
作者同時也發現,在細粒度分類依據提取這一部分,將Deconvolution移除掉以后并不會對結果造成什么影響,單獨使用Guided Backpropagation這一方法可以做到噪聲更少,所以如同上圖得到了最終Guided Grad-CAM的結構示意圖。
同時作者也對比了,使用不同深淺的特征圖對Grad-CAM結果的影響,結果如下所示。
從上圖可以看到,對于以貓這一個類別為導向的求導結果,relu5_3得到的熱力圖結果更加準確,這也印證了卷積層對比全連接層來說,它保留了圖像的空間信息,具有空間不變性。而深層次的特征圖具有更高的語義信息,但是淺層的特征則保留了更多的空間信息。在上圖中,使用深層特征結合Grad-CAM方法可以很好的得到類別感興趣區域。
Weakly-supervised Localization
基于這一方法,作者同CAM論文一樣,使用了該種方式做了弱監督的定位實驗,實驗結果如下:
作者提出的Grad-CAM相對于方法一來說取得了更低的錯誤率,但是對比CAM那篇論文的結果,錯誤率還是稍微高了一點,但是因為Grad-CAM不對原來的分類網絡做任何結構的修改,在Top-1和Top-5的分類準確率上是高于CAM方法的。因為CAM將原來的網絡最后的一個全連接層修改為GAP以后對于分類精度是有一定影響的。同時修改了網絡的結構之后還需要再對網絡進行重新訓練。
Evaluating Visualizations
在這一部分,作者提出了一個疑問,我們能夠通過Grad-CAM去解釋CNN模型在前向計算過程中,對于某些類別的待分類對象,是有一個關注的。但是,是什么東西主導了CNN模型認為這一部分的特征經過前向計算之后會分類成貓,或者是狗。
為了解釋這個問題,作者在PASCAL VOC 2007中選擇了一部分圖像進行驗證,他使用Deconvolution、Guided Backpropagation和Grad-CAM分別結合這兩個方法得到Deconvolution Grad-CAM和Guided Grad-CAM一共四個方法去對待測樣本進行可視化分析,然后在自己的組織Amazon Mechanical Turk (AMT)抽選志愿者進行人為的識別,通過人和機器的對比觀察在前向過程中哪一種方法對于類別分類可解釋有較好的結果。其實驗結果如下:
從表中依然可以看出使用Guided Grad-CAM方法以后出現的感興趣區域可以更好地讓人在圖像分類過程中正確的將結果預測出來,并且對于單獨使用細粒度的細節表征方法,比如Deconvolution、Guided Backpropagation,本文將Grad-CAM的結果與他們點乘到一起,人為來據此判斷的識別準確率會上升特別多,說明這種組合方法對CNN的可視化分析是有極大幫助的。實驗的可視化結果如下圖(a)和(b)所展示。
同時作者也對比了,使用VGG16和AlexNet去對比,使用Guided Grad-CAM對樣本可視化之后讓人進行識別判斷,以VGG16作為backbone的實驗準確率平均要比AlexNet高一個點左右。說明對分類任務更有效的網絡,其進行可視化分析以后,結果也會更加可靠。
同樣的,作者認為一個模型的解釋能力和使用其進行可視化以后的可解釋依據是有關系的。過去很多工作表示,更加深層或者準確率更加高的模型,往往解釋性會很差,但是本文的方法顯示了在模型的準確率和可解釋性之間是有一個對應關系的。為了作對比,文章也選了很多具有高準確率的分類樣本來實驗,如果將其一部分地方給遮擋住之后,觀察模型對該樣本準確率的下降情況和可視化情況。這一部分作者沒有貼出圖來展示結果。不過在結果中說了Guided Grad-CAM對比Guided Backpropagation來說,在遮擋住圖像重要部分以后,針對他們的可視化結果,依然是前者對于人為的識別能力更有幫助(0.261 VS 0.168)。
Analyzing Failure Modes for Image Classification
在這一部分,作者揭示了為啥對于一些樣本,CNN模型將其分類成一些人比較難想到的錯誤樣本。文中使用了Guided Grad-CAM作為可視化的指導。如下圖所示:
從上圖也可以看出,作者認為CNN模型將樣本分類錯誤是有依據的,比如說對于第一列的樣本,CNN模型將其分類成sandbar,但是實際上groundtruth為volcano,因為CNN模型的分類過程他的注意力主要集中在了sandbar的這個目標上,所以對于最終的分類過程顯示sandbar更加容易被預測作為結果。
Conclusion
在這項工作中,作者提出了一種新穎的類別判別定位技術-梯度加權類激活映射(Grad-CAM)。通過生成視覺解釋來使任何基于CNN的模型更加透明。此外,將Grad-CAM定位與現有的高分辨率可視化相結合以獲得高分辨率的類別判別式引導漸變CAM可視化。作者的可視化在兩個方面都優于所有現有的方法:可解釋性和對原始模型的分類一致度。大量的人工實驗研究表明,Grad-CAM可視化可以更準確地區分類,更好地揭示分類器的可信度,并幫助識別數據集中的偏差。最后,作者展示了Grad-CAM廣泛適用于各種現成可用架構,其中包括圖像分類,圖像描述和圖像問答等任務,它可以為可能的模型決策提供可信的視覺解釋。我們相信,一個真正的AI系統不僅應該是聰明的,而且能夠推斷它的信念和行動,以便人類相信它。未來的工作包括解釋深層網絡在強化學習,自然語言處理和視頻應用等領域的決策。