深度學(xué)習(xí)的可解釋性|Class Activation Mapping(CAM)

CAM

CAM

特征圖經(jīng)過 GAP 處理后每一個特征圖包含了不同類別的信息,其具體效果如上圖的 Class Activation Mapping 中的圖片所示,其中的權(quán)重 w 對應(yīng)分類時的權(quán)重。這樣做的缺陷是因為要替換全連接層為 GAP 層,因此模型要重新訓(xùn)練,這樣的處理方式對于一些復(fù)雜的模型是行不通的,Grad-CAM 很好的解決了這個問題,

繪制熱力圖:

  • 提取出所有的權(quán)重,往回找到對應(yīng)的特征圖,然后進(jìn)行加權(quán)求和即可
  • 通常來說,最后一層卷積層的大小不等于輸入大小,所以我們需要把這個類激活映射上采樣到原圖大小,再疊加在原圖上,就可以觀察到網(wǎng)絡(luò)得到這個輸出是關(guān)注圖片的哪個區(qū)域.

CAM 的意義就是以熱力圖的形式告訴我們,模型通過哪些像素點得知圖片屬于某個類別。

缺點

  • 需要修改網(wǎng)絡(luò)結(jié)構(gòu)并重新訓(xùn)練模型,導(dǎo)致在實際應(yīng)用中并不方便!

Grad-CAM


效果圖:


  • Grad-CAM 和 CAM 基本思路一樣,區(qū)別就在于如何獲取每個特征圖的權(quán)重,采用了梯度的全局平均來計算權(quán)重.

定義 Grad-CAM 中第k個特征圖對應(yīng)類別c 的權(quán)重:
\alpha_{k}^{c} = \frac{1}{Z}\sum_{i}\sum_{j}\frac{y^c}{\alpha A_{ij}^{k}}
其中,

  • Z表示特征圖的像素個數(shù)
  • {y^c}表示第c類得分的梯度
  • A_{ij}^{k}表示第k個特征圖中,(i,j)位置處的像素值

然后再求得所有的特征圖對應(yīng)的類別的權(quán)重后進(jìn)行加權(quán)求和,這樣便可以得到最后的熱力圖,求和公式如下:
L_{Grad-CAM}^c=ReLU(\sum\limits_k\alpha_k^cA^k)

代碼實現(xiàn)

參考

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

推薦閱讀更多精彩內(nèi)容