【深度学习】Grad-Cam相关

Posted by ShawnD on November 30, 2021

Grad-CAM: Visual Explanations from Deep Networks via Gradient-based Localization

这篇文章为基于CNN的模型的决策提出一种可视化解释。

Gradient-weighted Class Activation Mapping (Grad-CAM), 使用 target concept 的梯度 (比如分类网络中的 “dog”, 或者captioning网络的词序列)流入最后的卷积层, 生成一个粗略的定位图, 突出图像中的重要区域,以预测 concept。

Grad-CAM可以用于所有CNN系列的模型:

  • 带全连接曾的CNN模型 (比如VGG)
  • 用于生成序列化输出的 CNN (比如 captioning)
  • 带有多模态输入任务的CNN
  • 强化学习

将 Grad-CAM 结合 现有的细粒度可视化方法创造了一个高分辨率的、类别可分的可视化,Guided Grad-CAM, 将其用于 image clas-sification, image captioning, 和 visual question answering (VQA) 模型, 包括所有基于 ResNet 的结构。

对于图像分类模型,可视化有助于:

  • 为模型的失败模式提供见解(对看似不合理的预测有合理的解释)
  • 在ILSVRC-15弱监督定位任务上优于以往方法
  • 对对抗干扰有更强的鲁棒性
  • 模型的结果更加可靠
  • 通过识别数据集偏差帮助实现模型泛化

对于 image captioning 和 VQA, 我们的可视化表明即便非基于注意力的模型学习去定位输入图像的判别区域。

我们设计了一种通过 Grad-CAM 识别重要神经元的方法, 并将其与神经元名称相结合, 为模型决策提供文本解释。

Grad-CAM++: Improved Visual Explanations for Deep Convolutional Networks

基于 Grad-CAM 方法, 提出一种泛化性的方法 Grad-CAM++, 它可以根据更好的目标定位、解释在单个图像中出现的多个目标实例为 CNN 模型的预测提供更好的可视化。该方法使用最后一个卷积层的特征映射的正的偏导数作为权重, 生成相应的类别标签的可视化解释。

这篇文章为CNN 结构的视觉解释提出一个通用方法, 叫做Grad-CAM++。 我们为我们的方法提供了一个推导, 表明它是一个简单有效通用的, 基于梯度的视觉解释方法。 我们的方法解决了Grad-CAM的缺点, 特别是一个类在图像中多次出现和较差的目标定位。

给定图像的显著性特征图, 通过前向激活映射的线性组合得到 $L^c$ , 然后跟着一个 relu 层:

\[L_{ij}^c = relu(\sum_k w_k^c · A_{ij}^k)\]