Contents
- 1. Learning Deep Features for Discriminative Localization
- 2. Grad-CAM: Visual Explanations from Deep Networks via Gradient-based Localization
- 3. Grad-CAM++: Generalized Gradient-based Visual Explanations for Deep Convolutional Networks
- 4. Smooth Grad-CAM++: An Enhanced Inference Level Visualization Technique for Deep Convolutional Neural Network Models
- 5. 笔记总结
由CAM引出的基于梯度的类别激活图可视化方法:Grad-CAM、Grad-CAM++和Smooth Grad-CAM++,这里只抽取核心,不包括实验。
Learning Deep Features for Discriminative Localization
CAM,提出使用最后一层卷积来可视化网络的预测过程。
最后一层必须是Global Average Pooling,直接使用最后一层卷积后的full connect权重作为不同特征值的线性和的权重。
下面所讨论都是指最后一层卷积。
用
自然的,对于不同
最后再上采样到与input image同尺寸即可。
对于如果采用Global Max Pooling的差别,作者说得很明白,可以想见,使用GMP,CAM上面只会出现最后一层卷积核个数个点:
Given the prior work [16] on using GMP for weakly supervised object localization, we believe it is important to highlight the intuitive difference between GAP and GMP. We believe that GAP loss encourages the network to identify the extent of the object as compared to GMP which encourages it to identify just one discriminative part. This is because, when doing the average of a map, the value can be maximized by finding all discriminative parts of an object as all low activations reduce the output of the particular map. On the other hand, for GMP, low scores for all image regions except the most discriminative one do not impact the score as you just perform a max.
Grad-CAM: Visual Explanations from Deep Networks via Gradient-based Localization
CAM对于网络结构有要求,不采用GAP方法不能使用;且只能可视化最后一层的卷积。
作者提出基于梯度的方法Grad-CAM化解了对于网络结构的上述限制:
在CAM中,不同特征图特征线性和的权重是使用训练得到的GAP;在Grad-CAM中,使用特征图梯度的GAP值来衡量不同特征图结合的重要性,即:
于是Grad-CAM有:
梯度的正负表示对score增大的正反影响及其程度,最后保留正值,即仅可视化对score的正面影响;值得注意的是,若在权重计算过程中,将梯度取负值,则可视化结果是对于类别c预测起负面作用。
下证明Grad-CAM是CAM的一个推广,即使用GAP层时,两者等价:
仅需证明权重相等
使用GAP层时,使用CAM的权重计算为网络参数值,记为
Grad-CAM的权重计算为
其中
Grad-CAM++: Generalized Gradient-based Visual Explanations for Deep Convolutional Networks
Grad-CAM严格推广了CAM,在CAM中,由于所有网络都是使用的GAP,所以计算权重时对特征图梯度GAP与之等价;但是对于其他如full Connected网络而言,同一个特征图,不同坐标下权重不同,GAP没有考虑这种差异。
Grad-CAM++的可视化方法如下,
预测目标类别的score,假设由不同特征图GAP后,再线性加权得到:
线性加权的权重
计算如下,对于某个特征图,由特征图内的激活值线性加权而来: 则有最终目标类别的score计算如下:
在作者的假设下,有表达式(*),其中
和CAM和Grad-CAM一样,输入图像的Grad-CAM++由不同通道的激活值线性加权求和得到:
Smooth Grad-CAM++: An Enhanced Inference Level Visualization Technique for Deep Convolutional Neural Network Models
卷积核在提取特征的过程中,使用连续的值提取特征,在输入图像被关注物体的背景中,也存在一些特征会激活神经元,求梯度时会表现为“噪声”。可以参考上一篇笔记中的情况。
作者提出使用SMOOTHGRAD的方法来抑制噪声,强化特征,即输入图像
其中添加的是高斯噪声,即式(**)的计算过程如下,
由于添加了噪声,所以更能够突出特征图在噪声中robust的部分,这部分被认为更重要;此方法可以用来比较图片不同位置对神经元的激活强度,所以可以进行choosing neurons的操作,在论文中为,针对某个卷积核,针对特征图某个(x,y),可以对其生成可视化结果。可能的应用场景在debugging上。
笔记总结
上面四篇论文一脉相承,按论文的思路,SM Grad-CAM++理论上是效果最好的,因为从CAM到SM Grad-CAM++,是越来越推广的,除了某些细节外。
假设目标类别的score是由特征图线性加权得到,然后重点在于权重在各自的假设下的不同的求法。