CAM算法回顾

CAM算法流程

四、GradCAM可解释性分析——可解释性机器学习(DataWhale组队学习)-LMLPHP

  1. 输入原始图像,经过多层无池化的全卷积神经网络处理得到最后一层512个14×14的channel
  2. 使用GAP对512个channel分别求平均值,得到512个平均数
  3. 最后经过一个线性分类层得到每个类别对这512个平均数的权重 w i , i = 1 , 2...512 w_i,i=1,2...512 wi,i=1,2...512(相当于有512个关注区域,平均数的大小反映了不同区域的重要程度);对每个类别的线性分类分数进行softmax操作得到,将置信度最高的类别作为预测的类别
  4. 对每个channel进行线性组合得到最终的类别激活热力图,将这个14×14的矩阵以双线性插值的方式缩放回原图大小

CAM算法的精妙之处

  • 对深度学习实现可解释性分析、显著性分析
  • 可扩展性强,后续衍生出各种基于CAM的算法
  • 每张图片、每个类别,都能生成CAM热力图
  • 弱监督定位:图像分类模型解决定位问题
  • 潜在的“注意力机制”
  • 按权重排序可得特征重要度,辅助Machine Teaching

CAM算法的缺点

  • CAM算法中,必须有GAP层,否则无法计算每个channel的权重。如果没有GAP层,需把全连接层替换为GAP层,再重新训练模型
  • 只能分别最后一层卷积层的,无法分析中间层
  • 只能用于图像分类

GradCAM

四、GradCAM可解释性分析——可解释性机器学习(DataWhale组队学习)-LMLPHP

  1. 输入原始图像,经过多层无池化的全卷积神经网络处理得到最后一层512个14×14的channel
  2. 将512个channel输入到全连接层得到每个类别的预测分数
  3. 对每个类别求对channels的梯度,并进行GAP操作,得到512个权重
  4. 对每个channel进行线性组合得到最终的类别激活热力图

四、GradCAM可解释性分析——可解释性机器学习(DataWhale组队学习)-LMLPHP

Grad-CAM算法的优点:

  • 无需GAP层,无需修改模型结构,无需重新训练模型
  • 可分析任意中间层
  • 数学上是原生CAM的推广
  • 可用于细粒度图像分类、Machine Teaching

Grad-CAM算法的缺点:

  • 图像上有多个同类物体时,只能画出一块热力图
  • 不同位置的梯度值,GAP平均之后产生的影响是相同的
  • 梯度饱和、梯度消失、梯度噪声
  • 权重大的channel,不一定对类别预测分数贡献大
  • 只考虑从后往前的反向传播梯度,没有考虑前向预测的影响
  • 深层生成的粗粒度(粗粒度)热力图和浅层(类别判别能力不强)生成的细粒度热力图都不够精准

Grad-CAM算法的改进

Grad-CAM++算法

  • 解决了“图像上有多个同类物体时,只能画出一块热力图”
  • 解决了“不同位置的梯度值,GAP平均之后产生的影响是相同的”
    四、GradCAM可解释性分析——可解释性机器学习(DataWhale组队学习)-LMLPHP
    四、GradCAM可解释性分析——可解释性机器学习(DataWhale组队学习)-LMLPHP

Score-CAM算法

  • 解决了“梯度饱和、梯度消失、梯度噪声”
  • 解决了“权重大的channel,不一定对类别预测分数贡献大”
  • 解决了“只考虑从后往前的反向传播梯度,没有考虑前向预测的影响”
    四、GradCAM可解释性分析——可解释性机器学习(DataWhale组队学习)-LMLPHP

LayerCAM算法

  • 解决了“深层生成的粗粒度(粗粒度)热力图和浅层(类别判别能力不强)生成的细粒度热力图都不够精准”
    四、GradCAM可解释性分析——可解释性机器学习(DataWhale组队学习)-LMLPHP

总结

首先简要的回顾了CAM算法的基本流程,重点介绍了GradCAM算法的细节。最后介绍了Grad-CAM++、ScoreCAM和LayerCAM对GradCAM算法缺点的改进。

12-24 13:43