论文:Score-CAM: Score-Weighted Visual Explanations for Convolutional Neural Networks
作者:Haofan Wang1, Zifan Wang1, Mengnan Du2, Fan Yang2,
Zijian Zhang3, Sirui Ding3, Piotr Mardziel1, Xia Hu
代码:https://github.com/haofanwang/Score-CAM
收录于CVPR2020
摘要
与以往的CAM系方法不同,不需要梯度,通过收集目标类在前向传播上的每个激活图的权重实现,最终结果由权重和激活图的线性组合获得。
1.Introduction
CNN可视化三类主要方法:Gradient visualization , Perturbation, Class Activation Map (CAM)
3点贡献:
1.Score-CAM, 连接Perturbation-Based和CAM-Based
2.Average Drop / Average Increase and Deletion curve / Insertion
curve metrics 量化评估,Score-CAM更能发现重要特征
3.量化评估定位能力
2.BackGround
CAM, Grad-CAM
2.1梯度问题
饱和的深度神经网络梯度经过sigmoid和RELU层可能会引入噪声和消失,可视化效果如下
不可信度,Grad-Cam只是激活图的线性平均加权,那么会对贡献度高的权重产生失真(平均的特点),Grad-CAM++就是针对这个问题提出的改进
3. Score-CAM
具体方法,对激活图的每个通道,进行上采样,用于生成掩模。再用掩模点乘原图后,输入到cnn中。
p.s.可以理解为,对于特征图的每个通道,上采样获得贡献度最大的区域,保证不会出现类似Grad-Cam的失真。
上图意思是,计算出的掩模点乘原图,输入到模型中得到的得分,减去原图直接的得分,定义为Increase of Confidence
把掩模分通道计算
之后进行平滑处理(归一化,Smoothing with Normalization),把二值化的掩模映射到[0,1]区间上,使可视化效果看起来更真实柔和。
计算Score-CAM:
上述和Grad-CAM类似。
计算出激活图后,最后再归一化一下。整个流程如下:
4.实验
先直观的对比下
多目标检测效果好
对比Grad-CAM的faithfulness evaluation
可以对比Perturbation Based 的mask,用CAM掩模后输入到模型中,比较输出的变化,
下图就是基于Perturbation Based 的两种规则的实验
之后是定位性能指标,除去了数据集中目标占比50%以上的图片
最后介绍了Score-CAM可以用来诊断分析模型。