Contact me:

Blog : cugtyt.github.io/blog/i

Email: cugtyt#qq.com, cugtyt#http://gmail.com


Grad-CAM++: Generalized Gradient-based Visual Explanations for Deep Convolutional Networks?

cugtyt.github.io
圖標

由於知乎文章編輯問題,最好看上面鏈接。

由於精力有限,只對論文做概要性的翻譯,細節見論文原文。

Grad-CAM++: Generalized Gradient-based Visual Explanations for Deep Convolutional Networks

Abstract

基於最近提出的方法Grad-CAM,我們提出了一個通用方法叫做Grad-CAM++,可以對CNN模型預測提供更好的視覺可解釋性,與目前最好的方法相比,更好的解釋了目標定位和單個圖形上出現多個目標實例的解釋。我們提供了數學推導,加權結合了最後一層卷積層的特徵圖對特定類別分數的正偏導,作為權重來生成對應類別的視覺解釋。我們在標準數據集上的實驗和評估,包括主觀和客觀,展示了Grad-CAM++提供了很好的人類可觀察的解釋,無論CNN在分類,字幕生成和3D動作識別,還有一些新的東西如知識蒸餾。

INTRODUCTION

現在的深度學習模型效果很好,但是解釋性很差。解釋黑盒方面也有一些工作如ZFnet,CAM,Grad-CAM等。

雖然Grad-CAM等方法效果不錯但是,這些方法有局限性,例如多個同類目標同時出現的定位,即使是單一物體,Grad-CAM也不能定位完全。我們提出了Grad-CAM++,改良了先前的方法,我們的關鍵貢獻在於:

  • 我們引入了輸出梯度對於特定位置的像素級別加權。這個方法提供了對每個像素在特徵圖的重要性衡量,更重要的是我們推導了閉式解,同時獲得了高階的精確表達,包括了softmax和指數激活輸出。我們的方法需要一次反向回傳,因此計算量和先前的基於梯度的方法一致,但是效果更好。
  • 先前的幾個方法,如反卷積(Deconvolution),導向反向傳播(Guided Backpropagation),CAM,Grad-CAM,他們的結果評判都是靠人眼,或其他輔助標準。我們提出了新的方法來衡量可靠性,也就是說這個可視化結果是否與決策相關,我們的方法有很大優勢。
  • 好的可視化方法應該能夠高效提煉模型的知識。這個方面最近一致被忽視,我們用受限的師生設置(teacher-student setting),發現可以通過特定的損失函數來提升學生的性能,這個損失函數受Grad-CAM++生成的解釋圖啟發。我們引入了一個訓練方法,發現效果很好。
  • 我們也用了人工的方式來評價可視化效果,發現我們的方法的確很好。
  • 通過可視化樣本和目標估計,我們展示了Grad-CAM++在弱監督目標定位上相比Grad-CAM有提升。
  • 最後,我們展示了Grad-CAM++在圖像字幕生成,3D動作識別方面的有效性。據我們所知,這是第一次3D-CNN的可視化。

RELATED WORK

Zeiler & Fergus提出了反卷積方法來理解網路層。「Deconvnet」讓激活信息從高層流入圖像,這樣激活神經元的部分就高亮了。後面Springenberg擴展了這個工作提出了導向反向傳播(guided backpropagation)。【略去一些工作】

我們的工作主要受兩個演算法的啟發,叫做CAM和Grad-CAM,他們都基於一個基本假設,類別c獲得的分數Yc

可以寫作最後卷積層特徵圖Ak的全局均值池化的線性組合:

特定類別顯著圖(saliency map)在位置(i, j)上的Lc計算是:

CAM通過最後一層卷積層生成的激活圖來訓練線性分類器預測這些wck,但是有一些局限,它受限於使用全局均值池化層,在初始化模型後,需要重新訓練搜歌線性分類器。

Grad-CAM解決了這些問題,他的權重wck計算為:

其中Z是個常數(激活圖的像素數量)。這可以讓CAM泛化到任意的CNN模型,而不需要重新訓練,最後的Yc是激活圖Ak的可微函數。但是這讓權重wck獨立於位置(i,j),解決這個的方法是取偏導的全局均值池化:

為了獲取更好的像素尺度的表達,Grad-CAM上採樣,通過逐點相乘融合了特徵圖Lc和導向反向傳播的可視化結果。如圖1他有些缺點,如果圖中有多個同類物體,它不能完好定位目標。另一個偏導不加權的結果是,它只能定位物體的一部分。

GRAD-CAM++ METHODOLOGY

我們的方法通過對每個像素對最終特徵圖的貢獻建模。我們通過顯式編碼權重結構wck

重寫公式1:

背後的想法是wck捕獲特定激活圖Ak的重要性。激活圖在像素上正的梯度代表對分數正的影響。這樣保證了權重wck是加權平均而不是全局平均。

結合公式1和公式5我們得到:

不失一般性,我們去掉了relu,因為他只是個閾值,兩邊取偏導:

整理得到:

下,Grad-CAM++退化為Grad-CAM。原則上,Yc可以說任意預測的分數,唯一的要求是他必須是光滑函數。由於這個原因,不像Grad-CAM(把倒數第二層表示作為分數Yc),我們把倒數第二層分數傳入一個指數函數,因為它可微。如果我們把倒數第二層分數傳入指數函數,網路的最後一層卷積和倒數第二層只有線性或ReLU激活,計算高階倒數很容易了。令Sc為類c的倒數第二層分數:

對於ReLU,導數是:

把式14帶入12,得到:

所以,一次反向回傳,所有的梯度權重都可以計算得到。顯著圖Lc可以用前向激活圖+relu的線性組合計算得到:

為了生成在像素空間梯度可視化的顯著圖方法,我們逐點相乘了上採樣顯著圖和導向反向傳播生成的可視化結果,這個方法啟發於Grad-CAM,這個方法叫做Grad-CAM++。

圖2展示了加權的可視化結果,圖3是三種方法CAM,Grad-CAM,Grad-CAM++的鳥瞰圖。

Gradient weights for the softmax function

softmax:

Sk是倒數第二層分數。

EMPIRICAL EVALUATION OF GENERATED EXPLANATIONS

實驗結果的詳細內容見論文原文。

Objective Evaluation of Performance based on Object Recognition

Evaluating Human Trust

Harnessing Explainability to generate Object Localizations

LEARNING FROM EXPLANATIONS: KNOWLEDGE DISTILLATION

這部分介紹了知識蒸餾和師生設置的細節。

EXPLANATIONS FOR IMAGE CAPTIONING AND 3D ACTION RECOGNITION TASKS

Image Captioning

3D Action Recognition

見原文附錄

WHY ONLY POSITIVE GRADIENTS IN GRADCAM++?

這部分解釋了為什麼只用正的梯度,因為實驗發現效果更好。

CONCLUSION

我們提出了一個通用的類別判別方法,Grad-CAM++,用於視覺解釋基於CNN的架構。我們提供了一個嚴格推導,展示了它的簡潔,是早期基於梯度視覺解釋方法的有效泛化。我們的方法解決了Grad-CAM的短板——一個圖像出現多個相同類別和目標定位差。這是通過視覺樣本來證明的。我們使用標準的CNN模型和數據集客觀的和主觀的驗證了方法的有效性。我們展示了在圖像字幕生成和視頻理解等任務的優越性。我們也啟發了一個研究方向,對深度網路的解釋不僅用於理解模型背後的推理,而且可以用於訓練一個簡陋的學生網路。這個學生網路比老師網路可以學到更好的表示(低測試錯誤率)。未來的工作包括優化老師-學生設定的損失公式,通過Grad-CAM++高效的蒸餾知識。我們也希望探索我們的演算法到解釋其他網路架構的決策,例如RNN,LSTM,GAN。

推薦閱讀:

查看原文 >>
相关文章