计算机系统应用教程网站

网站首页 > 技术文章 正文

CNN 可视化算法 Grad-CAM pointrcnn可视化

btikc 2024-10-22 10:29:18 技术文章 7 ℃ 0 评论

上一篇文章介绍了一种 CNN 模型的可视化算法 CAM,但是 CAM 依赖于全局平均池化 (GAP),使用时需要修改网络结构。本文介绍改良版的算法 Grad-CAM,Grad-CAM 无需修改原有网络的结构、无需重新训练模型、并且可以适用于多种不同的任务 (例如图像分类、看图说话、图像问答等任务)。

1.概述

前一篇文章《CNN 可视化算法 CAM》介绍了 CAM 算法,CAM 可以用于可视化 CNN,通过视觉解释 CNN 做出预测时重点关注的区域。但是 CAM 的实现依赖于全局平均池化层,通过全局平均池化得到 feature map 每一个通道的权重,然后线性加权求和得到网络关注区域的热力图。因此对于很多网络都不能直接使用,需要把网络后面的全连接层改为全局平均池化。CAM 算法的示意图如下:

本文介绍《Grad-CAM: Visual Explanations from Deep Networks via Gradient-based Localization》论文提出的 Grad-CAM 算法,Grad-CAM 利用网络反向传播的梯度计算出 feature map 每一个通道的权重从而得到热力图。因此 Grad-CAM 可以直接用于各种 CNN 网络而无需重新训练 (如 VGG、ResNet),同时 Grad-CAM 也可以用于针对不同任务的网络 (如图像分类、看图说话、图像问答)。

在 Grad-CAM 论文里还提到了一些别的可视化方法,在这里先简单地介绍一下其中两种: Guided BackpropagationOcclusion Sensitivity,感兴趣的朋友可以查看具体的论文。

  • Guided Backpropagation

Guided Backpropagation 出自论文《Striving for Simplicity: The All Convolutional Net》,主要可视化网络反向传播的梯度,从而了解网络。这一种可视化方法具有很高的分辨率,能够展示图像中的细粒度细节,但是可视化的效果对于类别没有很好的判别性。下图是 Guided Backpropagation 的原理以及可视化的效果:

  • Occlusion Sensitivity

Occlusion Sensitivity 出自论文《Visualizing and Understanding Convolutional Networks》,Occlusion Sensitivity (遮挡敏感) 主要是使用灰色的方块遮挡图片上的不同区域,并记录各个区域被遮挡后模型预测置性度的变化。如果说某一个位置被遮挡后,模型预测的置性度大幅度下降,则说明该区域是比较重要的。Occlusion Sensitivity 可视化的效果如下图所示,图中的第四列表示的就是遮挡不同区域后的置性度。

2.Grad-CAM 整体结构和效果

上面是 Grad-CAM 的示意图,右边的部分表示不同的计算机视觉任务,Image Classification、Image Captioning 等,即 Grad-CAM 可用于各式各样的任务。

图片左侧的部分表示可视化的过程,其中包括三个部分,其中 Grad-CAM 是本文介绍的重点:

  • Guided Backpropagation: 就是上一节中简要介绍的方法,具有高分辨率和高细粒度,但是可视化结果的判别性 (对于不同类别区分的能力) 较弱。
  • Grad-CAM: Grad-CAM 可视化的结果,分辨率不高,但是判别性强。
  • Guided Grad-CAM: Grad-CAM 和 Guided Backpropagation 的结果按位相乘得到,这样可以融合 Grad-CAM 和 Guided Backpropagation 的优点,使可视化即具有高分辨率也具有好的判别性。

上面是不同方法可视化效果的对比,第一行是针对 label 猫的可视化效果,第二行是针对 label 狗的可视化效果。

  • 第一列是原始图片。
  • 第二列是 Guided Backpropagation 的可视化,可以看到分辨率比较高,能够展示不少细粒度的细节,但是对于不同的类别 (猫和狗) 没有足够的判别性,二者的可视化效果很相近。
  • 第三列是 Grad-CAM 的可视化效果,具有比较好的判别性,能够区分猫和狗。
  • 第四列是 Guided Grad-CAM 即 Guided Backpropagation 和 Grad-CAM 相结合,既有高分辨率也有判别性。
  • 第五列是 Occlusion Sensitivity 的可视化效果,Occlusion Sensitivity 在第一节中介绍了。
  • 第六列是 Grad-CAM 可视化 ResNet 的效果。

3.Grad-CAM 实现细节

接下来重点介绍 Grad-CAM 的实现细节,如上图所示。和 CAM 算法类似,对于一个类别 c,首先需要获得 feature map 每一个通道的权重,然后线性加权求和得到热力图,权重就是图中的 w1, ..., wn。

Grad-CAM 利用反向传播的梯度计算权重,因此不用把网络最后一层改为全局平均池化,公式如下,其中 c 表示类别,yc 是该类别对应的 logits (即还没经过 Softmax 的值),A 表示卷积输出的 feature map,k 表示 feature map 的通道,ij 表示 feature map 的横纵坐标,Z 表示 feature map 的尺寸 (即长乘宽)。这一过程相当于求 feature map 上梯度的均值,等价于一个全局平均池化操作。

得到权重后将 feature map 的通道线性加权融合在一起即得到热力图,公式如下,Grad-CAM 对融合后的热力图增加一个 Relu 操作,只保留对于类别 c 有正作用的区域。

在论文中作者也用公式推导证明了 Grad-CAM 是 CAM 的一种泛化形式,感兴趣的朋友可以看看原始论文。

4.实验效果

作者在弱监督目标定位任务 (Weakly-supervised Localization) 上测试了 Grad-CAM 的定位能力,结果如下,表中展示了不同方法的错误率。

作者也在弱监督语义分割任务 (Weakly-supervised Segmentation) 上测试了 Grad-CAM,效果如下:

5.参考文献

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

Tags:

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表