Paper Reading Note
URL: https://arxiv.org/abs/1610.02391
TL;DR
提出一種對神經網絡輸出進行可視化的方式Grad-CAM(Gradient-weighted Class Activation Mapping),直觀展示卷積神經網絡學習到的特徵,有助於理解神經網絡的工作原理及決策過程
Dataset/Algorithm/Model/Experiment Detail
總體思路
Grad-CAM是使用任何目標概念的梯度(比如分類類別中的某一類的logits,甚至是caption任務中的輸出),流入最後的卷積層,生成一個粗略的定位圖來突出顯示圖像中用於預測的重要區域。
實現方式
- 首先計算c類別的的模型得分 對於某個卷積層的梯度,同時在對於每個channel上的各像素值取平均(類似Global Average Pooling),得到神經元重要性權重,如下公式所示:
其中Z代表特徵圖的像素個數,代表第k個特徵圖的(i,j位置的像素值) - 利用上述得到的神經元重要性權重對選定的卷積層的特徵進行加權,如下公式所示:
值得注意的是這裏加權後輸出的粗糙熱力圖是和卷積層的特徵大小一致,隨後經過ReLU操作得到熱力圖,目的是隻考慮對類別 c 有正影響的像素點。
效果展示
- 分類任務
- captioning 任務
Thoughts
這篇文章雖然思路很簡單,但作爲神經網絡可解釋化的經典作品,其對於理解神經網絡的工作原理有很大幫助。在迭代訓練模型過程中這樣的可視化方法也能對模型的決策方式有一定展示。該文章的網站也提供了相應的展示界面,其中captioning任務的展示工具提供了一些有趣的發現,一些看似不合理的預測其實也是在合理的原因下發生。
該論文的展示網頁見:Grad-CAM展示