Grad-CAM: Why did you say that? Visual Explanations from Deep Networks via Gradient-based Localiz...

Abstract

这篇文章其实是CAM的进化版,主要是为了解决CNN模型的不可见问题,CAM论文中通过Class Activation Mapping技术将模型中感兴趣的区域用热力图的方式区分出来。作者在这篇文章中提出了一个新的概念,叫做Grad-CAM,全称Gradient-weighted Class Activation Mapping。与CAM不同的是,文章使用了感兴趣、或者说是可指定类的梯度去指明了CNN模型是通过原图中的哪一部分区域得到这个分类结果,并且这个方法可以很方便的扩展到目前的任意一个训练完好的CNN模型中。通过合并Guided Backpropagation的结果,Grad-CAM还可以做到更细粒度的可视化分析,解释了为什么模型将原图分类到某一类的结果。Grad-CAM可以很方便的推广到图像分类、图像描述和视觉问答等任务的可视化分析中。

原文

官方代码

PyTorch实现

Introduction

目前CNN在图像分类、检测和分割任务中广泛使用并且被证明具有极高的实用价值,但是关于CNN结构的可解释性,一直没有一个比较好的结果。传统方法中每一部分的模型都是手工设计的算子,它们都是基于研究人员的经验和想法很直观的设计得到的,具有较高的解释性,但是在CNN模型中,深层模型和自学习的参数使得模型的解释性变弱甚至于很难解释,因此,找到CNN模型的可解释性依据是什么重要的。

早一点的时候,CAM这篇文章受NIN结构的启发,将网络最后的全连接层替换成GAP(global average pooling),然后设置最后一层卷积层的输出通道与待分类的类别数相同,这样训练出来的网络,针对每一个类别都有与卷积输出通道数维度相同的一维向量表示权值,通过加权累加可以得到解释性区域,我们称之为Class Activation Mapping。本篇文章提出的Grad-CAM其实是该种方法的一个扩展。作者认为一个好的可视化解释应该具备两个条件。

  • 类别判别(具备图像中的类别定位能力)
  • 高分辨率(解释性输出能包含一些细粒度的细节)

针对细粒度可视化的解释,导向反向传播(Guided Backpropagation)和反卷积(Deconvolution)可以在高分辨率的图像中体现一些图像的细节信息。而全局的类别判别也就是感兴趣区域可以使用梯度加权类激活映射图(Grad-CAM)来表示。下图是一个示例图像。

grad-cam-1.png

上图的第二列战士的是根据指定类别指导反向计算出来的图像细粒度可分类细节的可视化结果,第三列则展示了本文提出的Grad-CAM粗定位的结果,最后将两者结合在一起之后满足了上文中作者提到的一个好的可视化结果。在这篇文章中作者的主要贡献为:

  1. 提出了一种类区分的定位技术叫做梯度加权类激活映射图(Grad-CAM),并且可以将其扩展到任何一个基于CNN的技术架构中,提供一个网络可视化、可解释的能力。
  2. 为了解释这项技术,作者对图像分类、图像描述和视觉问答都做了详细的实验研究和对比。
  3. 文章提到的技术指导了研究人员建立更加鲁棒、准确的网络模型。

Related Work

(感兴趣可以阅读原文)

Approach

CAM方法可以很轻松的获取CNN结构中对于感兴趣类别的粗略定位,文章基于这个出发点,进一步的提出了可以将Guided Backpropagation和Deconvolution与CAM的思想结合在一起,完成细粒度的图像可解释工作。

Class Activation Mapping (CAM)

首先来看CAM方法,一个全连接层被替换成GAP,然后最后一个卷积层的输出通道数设置成为待分类类别个数之后,分类任务可以表达为:

y^{c} = \sum_{k}w_{k}^{c}\frac{1}{Z}\sum_{i}\sum_{j}A_{ij}^{k}

其中A_{ij}^{k}\in\mathbb{R}^{u*v}表示的是第k个特征图的宽高为uv,然后y^{c}表示的是计算出来的分类结果,其中w_{k}^{c}就代表了每一类的一个权重结果,通过全连接层得到。将这个权重按如下操作以后可以得到CAM的输出图。

L_{CAM}^{c}=\sum_{k}w_{k}^{c}A^{k}

其中的L_{CAM}^{c}就表示的是特征图的加权输出结果,将其归一化到0到1之间就可以画出一个热力图对应着图像中的类别感兴趣区域。

Gradient-weighted Class Activation Mapping

在Grad-CAM方法中,作者直接通过特征图导数来获取特征激活图,首先让类别输出结果对卷积层的输出特征图求导,如\frac{\partial{y^{c}}}{\partial{A_{ij}^{k}}},通过计算可以得到类似于GAP求出的权重\alpha_{k}^{c},公式如下。

\alpha_{k}^{c}=\frac{1}{Z}\sum_{i}\sum_{j}\frac{\partial{y^{c}}}{\partial{A_{ij}^{k}}}

\alpha_{k}^{c}与特征图累加同样能够得到CAM的可视化结果,权重表示了目标类别c对特征映射的重要性。因为我们只关注特征图中的正值对最后的分类结果影响,所以需要对权重加权的结果特征图上再使用一个ReLU函数去除负值的影响。结果为:

L_{Grad-CAM}^{c}=ReLu(\sum_{k}\alpha_{k}^{c}A^{k})

Guided Grad-CAM

虽然Grad-CAM可以得到类区分的粗略定位,也即是视觉解释区域,但是缺少了CNN模型为啥会将其分类成猫或者狗的细粒度信息。在前文中我们提到Guided Backpropagation和Deconvolution可以得到一些高分辨率的、细粒度的可视化分类依据。所以在这一部分,作者通过使用点乘的方式将这两者结合在一起得到同时具备细粒度分类依据和粗定位的可视化结果,方法称作Guided Grad-CAM。方法结构图如下所示。

grad-cam-2.png

作者同时也发现,在细粒度分类依据提取这一部分,将Deconvolution移除掉以后并不会对结果造成什么影响,单独使用Guided Backpropagation这一方法可以做到噪声更少,所以如同上图得到了最终Guided Grad-CAM的结构示意图。

同时作者也对比了,使用不同深浅的特征图对Grad-CAM结果的影响,结果如下所示。

grad-cam-4.png

从上图可以看到,对于以猫这一个类别为导向的求导结果,relu5_3得到的热力图结果更加准确,这也印证了卷积层对比全连接层来说,它保留了图像的空间信息,具有空间不变性。而深层次的特征图具有更高的语义信息,但是浅层的特征则保留了更多的空间信息。在上图中,使用深层特征结合Grad-CAM方法可以很好的得到类别感兴趣区域。

Weakly-supervised Localization

基于这一方法,作者同CAM论文一样,使用了该种方式做了弱监督的定位实验,实验结果如下:

grad-cam-3.png

作者提出的Grad-CAM相对于方法一来说取得了更低的错误率,但是对比CAM那篇论文的结果,错误率还是稍微高了一点,但是因为Grad-CAM不对原来的分类网络做任何结构的修改,在Top-1和Top-5的分类准确率上是高于CAM方法的。因为CAM将原来的网络最后的一个全连接层修改为GAP以后对于分类精度是有一定影响的。同时修改了网络的结构之后还需要再对网络进行重新训练。

Evaluating Visualizations

在这一部分,作者提出了一个疑问,我们能够通过Grad-CAM去解释CNN模型在前向计算过程中,对于某些类别的待分类对象,是有一个关注的。但是,是什么东西主导了CNN模型认为这一部分的特征经过前向计算之后会分类成猫,或者是狗。

为了解释这个问题,作者在PASCAL VOC 2007中选择了一部分图像进行验证,他使用Deconvolution、Guided Backpropagation和Grad-CAM分别结合这两个方法得到Deconvolution Grad-CAM和Guided Grad-CAM一共四个方法去对待测样本进行可视化分析,然后在自己的组织Amazon Mechanical Turk (AMT)抽选志愿者进行人为的识别,通过人和机器的对比观察在前向过程中哪一种方法对于类别分类可解释有较好的结果。其实验结果如下:

grad-cam-5.png

从表中依然可以看出使用Guided Grad-CAM方法以后出现的感兴趣区域可以更好地让人在图像分类过程中正确的将结果预测出来,并且对于单独使用细粒度的细节表征方法,比如Deconvolution、Guided Backpropagation,本文将Grad-CAM的结果与他们点乘到一起,人为来据此判断的识别准确率会上升特别多,说明这种组合方法对CNN的可视化分析是有极大帮助的。实验的可视化结果如下图(a)和(b)所展示。

grad-cam-6.png

同时作者也对比了,使用VGG16和AlexNet去对比,使用Guided Grad-CAM对样本可视化之后让人进行识别判断,以VGG16作为backbone的实验准确率平均要比AlexNet高一个点左右。说明对分类任务更有效的网络,其进行可视化分析以后,结果也会更加可靠。

同样的,作者认为一个模型的解释能力和使用其进行可视化以后的可解释依据是有关系的。过去很多工作表示,更加深层或者准确率更加高的模型,往往解释性会很差,但是本文的方法显示了在模型的准确率和可解释性之间是有一个对应关系的。为了作对比,文章也选了很多具有高准确率的分类样本来实验,如果将其一部分地方给遮挡住之后,观察模型对该样本准确率的下降情况和可视化情况。这一部分作者没有贴出图来展示结果。不过在结果中说了Guided Grad-CAM对比Guided Backpropagation来说,在遮挡住图像重要部分以后,针对他们的可视化结果,依然是前者对于人为的识别能力更有帮助(0.261 VS 0.168)。

Analyzing Failure Modes for Image Classification

在这一部分,作者揭示了为啥对于一些样本,CNN模型将其分类成一些人比较难想到的错误样本。文中使用了Guided Grad-CAM作为可视化的指导。如下图所示:

grad-cam-7.png

从上图也可以看出,作者认为CNN模型将样本分类错误是有依据的,比如说对于第一列的样本,CNN模型将其分类成sandbar,但是实际上groundtruth为volcano,因为CNN模型的分类过程他的注意力主要集中在了sandbar的这个目标上,所以对于最终的分类过程显示sandbar更加容易被预测作为结果。

Conclusion

在这项工作中,作者提出了一种新颖的类别判别定位技术-梯度加权类激活映射(Grad-CAM)。通过生成视觉解释来使任何基于CNN的模型更加透明。此外,将Grad-CAM定位与现有的高分辨率可视化相结合以获得高分辨率的类别判别式引导渐变CAM可视化。作者的可视化在两个方面都优于所有现有的方法:可解释性和对原始模型的分类一致度。大量的人工实验研究表明,Grad-CAM可视化可以更准确地区分类,更好地揭示分类器的可信度,并帮助识别数据集中的偏差。最后,作者展示了Grad-CAM广泛适用于各种现成可用架构,其中包括图像分类,图像描述和图像问答等任务,它可以为可能的模型决策提供可信的视觉解释。我们相信,一个真正的AI系统不仅应该是聪明的,而且能够推断它的信念和行动,以便人类相信它。未来的工作包括解释深层网络在强化学习,自然语言处理和视频应用等领域的决策。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 159,716评论 4 364
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 67,558评论 1 294
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 109,431评论 0 244
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 44,127评论 0 209
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 52,511评论 3 287
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,692评论 1 222
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 31,915评论 2 313
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,664评论 0 202
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,412评论 1 246
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,616评论 2 245
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 32,105评论 1 260
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,424评论 2 254
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 33,098评论 3 238
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,096评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,869评论 0 197
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 35,748评论 2 276
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,641评论 2 271

推荐阅读更多精彩内容