可解释机器学习 Task04 - GradCAM深度学习可解释性分析

可解释机器学习 Task04 - GradCAM深度学习可解释性分析

  • 一、GradCAM算法简介
    • 1.算法流程
    • 2.算法拓展
    • 3.算法优点
    • 4.算法缺点
  • 二、Grad-CAM++
    • 1.解决问题
  • 三、ScoreCAM
    • 1.解决问题
  • 四、LayerCAM
    • 1.解决问题

一、GradCAM算法简介

1.算法流程

  • 输入一张图片,经过与CAM算法相同的卷积层操作,到最后一层卷积层输出512个14*14的 feature map
  • 将卷积层输出结果输入到全连接层中,得到了1000个类别对应的线性预测分数logit,用 y c y^{c} yc表示
  • y c y^{c} yc相对于512*14*14的梯度,得到512*14*14的偏导数,用GAP方法得到512个权重(核心步骤:用梯度代替GAP层)
  • 用512个权重与上述对应的 channel 相乘后相加,得到一个14*14的热力图
  • 将热力图通过ReLU函数,通过双线性插值的方法缩放回256*256,得到原图大小的图片

可解释机器学习 Task04 - GradCAM深度学习可解释性分析_第1张图片

2.算法拓展

  • 可以用来做多方面的任务(图像分类、图像描述、视觉问答、强化学习……)
  • 与Guided Backpropagation(可以得到一种高分辨率细粒度的图像256256)结合,Grad-CAM得到的是1414的粗粒度的矩阵,将矩阵缩放置256*256后,将两种矩阵逐元素的做乘法,得到 Guided Grad-CAM 图像(既是高分辨率(256*256),又具有类别判别性)。

可解释机器学习 Task04 - GradCAM深度学习可解释性分析_第2张图片

3.算法优点

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

4.算法缺点

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

二、Grad-CAM++

1.解决问题

  • 图像上有多个同类物体时,只能画出一块热力图

用不同的 channel 捕捉不同的特征(如下图 A 1 A^{1} A1 A 2 A^{2} A2 A 3 A^{3} A3

可解释机器学习 Task04 - GradCAM深度学习可解释性分析_第3张图片

  • 不同位置的梯度值,GAP平均之后,影响是相同的

给每一个激活函数增加一个权重 α i j k c \alpha^{kc}_{ij} αijkc

可解释机器学习 Task04 - GradCAM深度学习可解释性分析_第4张图片

三、ScoreCAM

1.解决问题

  • 梯度的传统问题:梯度饱和、梯度消失、梯度噪声
  • 权重大的channel,不一定对类别预测分数贡献大
  • 只考虑从后往前的反向传播梯度,没考虑前向预测的影响

使用了两个卷积神经网络

  • 神经网络一:
    • 将图像输入Phase 1 中,得到了1000个14*14的 channel
    • 对这1000个 cahnnel 进行上采样,得到了1000个256*256的 channel
  • 神经网络二:
    • 将神经网络一的1000个256*256的 channel 与原图做逐个像素的乘法
    • 将上述结果输入到第二个神经网络中,得到1000个权重
    • 将这1000个权重与神经网络一的1000个 channel 做线性组合,得到结果

可解释机器学习 Task04 - GradCAM深度学习可解释性分析_第5张图片

四、LayerCAM

1.解决问题

  • 深层生成的粗粒度热力图和浅层生成的细粒度热力图 都不够精准

你可能感兴趣的:(深度学习,计算机视觉)