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

一、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,得到原图大小的图片

在这里插入图片描述

2.算法拓展

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

在这里插入图片描述

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

在这里插入图片描述

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

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

在这里插入图片描述

三、ScoreCAM

1.解决问题

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

使用了两个卷积神经网络

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

在这里插入图片描述

四、LayerCAM

1.解决问题

  • 深层生成的粗粒度热力图和浅层生成的细粒度热力图 都不够精准
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值