CAM
paper:Learning Deep Features for Discriminative Localization
本文的出发点是为了神经网络的可解释性,即高亮出神经网络的激活区域。可用于object detection(location)。
给定任意一个网络结构(分类网络)。CAM的做法
- 将网络结构的最后一层删去,设删去后得到的是 ( w , h , n ) (w,h,n) (w,h,n)的特征图。
- 使用全局平均池化得到 n n n个值,对应图中蓝色,红色…,绿色的节点值
- 使用全连接层得到 C C C个输出, C C C为类别个数
- 重新训练/fine tune网络至收敛
- 指定要激活的类别 X X X。将FC层的权重, K K KX C C C大小的矩阵中的第 X X X列(设值为 w 1 , w 2 . . . w n w_1,w_2...w_n w1,w2...wn),直接与特征图进行点乘后相加,相加后得到一张对应类别的 X X X的特征层激活图,将其双线性插值回原图大小,设置阈值得到对应类别在原图中的位置(激活的高亮区域)。
Grad-CAM
paper:Grad-CAM:Visual Explanations from Deep Networks via Gradient-based Localization Ramprasaath
先验知识:
paper :STRIVING FOR SIMPLICITY:THE ALL CONVOLUTIONAL NET
如上图所示,
f
i
l
f_i^{l}
fil表示第
l
l
l层的特征图的位置
i
i
i的值,
f
i
l
+
1
=
r
e
l
u
(
f
i
l
)
f_{i}^{l+1}=relu(f_{i}^{l})
fil+1=relu(fil)。
R
i
l
R_{i}^l
Ril表示第
l
l
l层的特征图的位置
i
i
i的梯度值。
R
i
l
+
1
R_{i}^{l+1}
Ril+1同理。
卷积的逆向推导常见的有三种
- 普通的反向传播,用于调整权重大小,由于激活函数的影响,反向传播只将返回 f i l f_i^l fil值为正数的位置的梯度值。
- 反卷积,类似于将relu作用于梯度的反向传播,即将 R i l + 1 R_{i}^{l+1} Ril+1值为正数的位置传播。
- 引导反向传播,可以看作前两者的交集,只有位置 i i i满足 f i l f_i^l fil和 R i l + 1 R_{i}^{l+1} Ril+1都为正数时才更新梯度值。
对指定的类别 C C C进行引导反向传播至原图(第一层),会发现原图中激活的区域是纹理复杂的区域,但是遗憾的是并不是只有类别 C C C所在的区域得到激活。如下图所示
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/f5365f4814ddc68c7ca9e42f88bc517e.png)
对猫或者狗进行引导反向传播,激活的区域都不限于猫或者狗。也就是说,引导反向传播告诉了我们——神经网络在判定图中是否存在猫的时候看了哪些区域(既看了狗的位置又看了猫的位置),但是并没有告诉我们如何进一步筛选过滤。
framework of Grad-CAM
Grad-CAM与CAM在功能性上的区别
- 不需要对网络结构进行更改并且重新训练
- 不仅限于图像识别任务的可视化,可以用于Caption/Question Answer等任务的可视化
- 性能相较于CAM有所提升(比如都用于weakly supervised object detection)
Grad-CAM的处理过程
- 取模型中的最后的卷积层的特征图(允许后面还有FC,LSTM等结构),设其为 ( w , h , n ) (w,h,n) (w,h,n)。计算对应类别 C C C的梯度,第 n n n张特征图,位置 ( w , h ) (w,h) (w,h)处的梯度值记为 A w , h , n C A_{w,h,n}^C Aw,h,nC。(使用的就是普通的反向传播)
- 对于 n n n张特征图的梯度进行全局平均池化,得到 n n n个梯度值,对应图中的 w 1 c w_1^c w1c, w 2 c w_2^c w2c,…, w n c w_n^c wnc。
- 将得到的 w w w与特征图进行对应相乘后相加,融合得到一张Grad-CAM的结果。 ∑ i = 1 n w i ∗ f l \sum_{i=1}^n w_i*f^l ∑i=1nwi∗fl
- 对图像进行对应类别的引导反向传播至原图。得到上文说到的类别区分度不高的纹理激活图。
- 将Grad-CAM进行双线性插值得到原图大小后,与引导反向传播的结果进行点乘运算,得到最终的Guided Grad-CAM。
Grad-CAM的思路
- 使用特征图上梯度的均值作为改特征图的权重 w w w,以此代替CAM中训练得到的权重。
- 经过第一步其实实验的效果就与CAM相近了,作者再次基础上在结合了引导反向传播进一步优化了结果。其实也可以仿照此得到Guided CAM。