《Grad-CAM:Visual Explanations from Deep Networks via Gradient-based Localization》
《Grad-CAM:基于梯度定位的深层网络可视化解释》
发表于:
[v1] CVPR(Computer Vision and Pattern Recognition)Oct 2016 2016;
[v2] IJCV(International Journal of Computer Vision)3 Dec 2019 (2022IF:13.369);
注:CVPR是计算机视觉领域三大顶会中唯一一个年度学术会议。
代码:https: //github.com/ramprs/grad-cam/;
视频演示:youtu.be/COjUB9Izk6E;
Grad-CAM 可视化 可解释性;
本文提出的方法:梯度加权类激活映射(Gradients weighted Class Activation Mapping:Grad-CAM),使用任何目标概念的梯度,流入最终的卷积层,生成一个粗略的定位图,突出显示图像中用于预测概念的重要区域。与以前的方法不同,Grad-CAM适用于各种CNN模型系列:
(1) 具有完全连接层的CNN(例如VGG);
(2) 用于结构化输出的CNN(例如字幕captioning);
(3) CNN用于具有多模式输入(例如,视觉问答)或强化学习的任务,无需更改架构或再训练;
本文将Grad-CAM与现有的细粒度可视化相结合,创建一个高分辨率的类判别可视化方法:Guided Grad-CAM,并将其应用于图像分类、图像字幕和可视化问答模型,包括基于Res-Net的体系结构。在图像分类模型的上下文中,本文的可视化:
(a) 洞察这些模型的失效模式(表明看似不合理的预测有合理的解释);
(b) 在ILSVRC-15弱监督定位任务上优于以前的方法;
(c) 更忠实于基础模型;
(d) 通过识别数据集偏差帮助实现模型泛化;
对于图像字幕和VQA,本文的可视化显示,即使是非基于注意力的模型也可以定位输入。最后,本文设计并进行了人体研究,以衡量Grad-CAM解释是否有助于用户建立对深度网络预测的适当信任,并表明Grad-CAM帮助未经训练的用户成功区分“更强”的深度网络和“较弱”的深度网络。
[背景] 可解释性在AI进化的三个阶段的作用:
[背景] 在准确性和可解释性之间存在一种平衡:
[前人已有工作] Zhou等人提出了一种称为CAM(Class Activation Mapping)的技术,用于识别不包含任何FC层的有限类图像分类的区域,有以下缺点:
改变网络架构(权衡准确度和可解释性);
不适用于其他任务(如VQA);
见 [Zhou. Learning Deep Features for Discriminative Localization. In CVPR, 2016]
[本文模型] Grad-CAM:是CAM的推广,适用范围更广:
[什么是好的视觉解释性?] 任何目标类别的好的视觉解释应该是
(a)类别区分(即在图像中定位类别);
(b)高分辨率(即捕捉细微的细节);
如下例,图1显示了“tiger cat 虎皮猫”类和“boxer dog 沙皮狗"类的大量可视化输出结果。
引导反向传播Guided Backpropagation[42]和反褶积Deconvolution[45]是高分辨率的,并突出图像中的细粒度细节,但不具有类别区分性(见图1b和图1h非常相似)。
相比之下,像CAM或本文提出的Grad-CAM这样的定位方法具有高度的类识别性(“cat”解释仅强调图1c中的“cat”区域,而不是“dog”区域,反之亦然,见图1i)。
图1:(a)一只猫和一只狗的原始输入图像。(b-f)根据VGG-16和Res-Net的不同视觉效果,可视化对猫类别的支持区域。(b) Guided Backpropagation [42]: 突出所有的贡献特征。(c, f) Grad-CAM (Ours): 定位类别区分区域, (d) 结合(b)和©得到Guided Grad-CAM, 它提供高分辨率的类别区分的可视化效果。本文的Grad-CAM技术实现的定位,与©与和(e)的结果非常相似,而计算的成本却低了几个数量级。(f, l) 是ResNet-18的Grad-CAM可视化。在(c,f,i,l)中,红色区域对应的是该类的可视化证据,而在(e,k)中,蓝色对应的是该类的证据。
[本文贡献] 本文贡献如下:
本文的工作借鉴了最近在CNN可视化、模型信任评估和弱监督定位方面的工作。
[pipeline]
图2:Grad-CAM概述:给定一幅图像和一类感兴趣的内容作为输入,本文通过模型的CNN部分向前传播图像,然后通过特定于任务的计算获得类别的原始分数。除所需类别设置为1外,所有类别的渐变都设置为零。然后,该信号被反向传播到所关注的校正卷积特征图(Rectified Conv Feature Maps),本文结合这些特征图来计算粗糙梯度CAM定位(蓝色热图),它表示模型在做出特定决策时必须寻找的位置。最后,本文将热图与引导反向传播逐点相乘,以获得高分辨率和概念特定的Guided Grad-CAM可视化。
[pipeline 细节]
图2.1细节解释:这里的原始图像,猫作为感兴趣的区域,通过CNN模型向前传播,计算类的原始分数,然后将获得的那些分数所需的类(比如说本文关注这个猫)就将猫的类别设置为1,剩下的设置为0,然后把这个本文关注的这个信号反向传播到所关注的矫正卷积特征图(rectified conv feature maps),做了一个全局池化的操作,这里的w是权重,代表每一层feature map的重要性,然后做一个线性结合放进RELU函数,计算Grad-CAM,它表示模型在做出特定决策时必须寻找或者关注的位置。最后,将热图与引导反向传播(guided backpropaagation)逐点相乘,来获得更高分辨率和概念特定的Guided Grad-CAM可视化结果。
[计算公式]
要得到某个类别的Grad-CAM图: L G r a d C A M c ∈ R u × v L^{c}_{GradCAM}∈R^{u×v} LGradCAMc∈Ru×v (宽u高v类别c),主要是用一个权重α乘以每层的feature map(线性相乘),然后放进ReLU函数中得到。
[计算权重 a k c a^{c}_{k} akc]
第一部分表示进行全局池化操作,也就是对feature mao求均值。
第二部分表示最终类别得分对要求的目标层求梯度。
首先计算c类分数的梯度: y c y^c yc是c类的得分(在softmax之前),对feature map A k A^k Ak求导得到梯度,也就是说 d y c d A k \frac{dy^c}{dA^k} dAkdyc。将这些回流(flowing back)的梯度进行全局平均合并,以获得神经元重要性权重参数 α k c α^{c}_{k} αkc
[ReLU作用]
使用ReLU获Grad-CAM,ReLU函数作用,顾虑掉其他类的值,只留下本文关心的类。
本文对maps的线性组合应用ReLU,因为本文只对那些对感兴趣的类别有正向影响的特征感兴趣。负像素可能属于图像中的其他类别。
[Grad-CAM是CAM的泛化]
CAM为图像分类CNN生成了一个定位图,该图像分类CNN具有一种特定的体系结构,其中全局平均池卷积特征图直接输入softmax。具体地说,让倒数第二层生成K个feature maps, A k ∈ R u × v A^{k}∈R^{u×v} Ak∈Ru×v。然后,使用全局平均池(GAP)对这些特征图进行空间池化,并进行线性变换以生成每个类c的得分 S c S^{c} Sc:
要为修改后的图像分类体系结构生成定位图,可交换求和顺序以获得 L C A M c L^{c}_{CAM} LCAMc,
这种架构的修改需要重新训练,因为不是所有的架构都有连接特征图(connecting features maps)和输出的权重 w k c w^{c}_{k} wkc。当Grad-CAM应用于这些体系架构时, a k c = w k c a^{c}_{k}=w^{c}_{k} akc=wkc使得Grad-CAM称为CAM的一个严格泛化(详情见[38]参考附录A)。
上述泛化还允许本文从基于CNN的模型生成可视化解释,这些模型将卷积层与更复杂的交互级联。事实上,本文将Grad CAM应用于“超越分类beyond classification”任务,包括利用CNN进行图像字幕和视觉问答(VQA)的模型(第7.2节)。
[Guided Grad-CAM]
Grad-CAM能够很好地定位相关图像区域,但缺乏显示细粒度重要性的能力。例如,在图1c中,Grad-CAM可以轻松定位cat区域;然而,从热图的低分辨率来看,仍不清楚为什么网络会将这一情况预测为“tiger cat”。
为了结合两者的最佳方面,通过逐点乘法融合了引导反向传播(Guided Backpropagation)和Grad-CAM可视化( L G r a d − C A M c L^{c}_{Grad-CAM} LGrad−CAMc首先使用双线性差值向上采样得到输入图像分辨率)。
图2左下角显示了这种融合。这种可视化既具有高分辨率(当感兴趣的类别为“tiger cat”时,它识别重要的“tiger cat”特征,如条纹、尖尖的耳朵和眼睛)又具有类别识别性(它显示“tiger cat”,但不显示“boxer dog)”。在上面用反褶积代替引导反向传播给出了类似的结果,但本文发现反褶积有伪影(引导反向传播可视化通常噪音较小),因此本文选择引导反向传播而不是反褶积。
在图像分类的背景下评估Grad-CAM的定位能力。
ImageNet定位挑战[9]要求除提供分类标签外,还提供边界框。与分类类似,对前1名和前5名预测类别进行评估。给定一幅图像,本文首先从本文的网络中获得类预测,然后为每个预测类生成Grad-CAM图。
在ImageNet挑战赛ILSVRC 15数据集上评估分类之后,本文报告表中验证集的top-1和top-5定位错误。
表1,对于VGG-16模型,Grad-CAM定位误差明显低于c-MWP[46]和Simonyan等人[40]所实现的误差,该模型使用grabcut将图像空间梯度后处理为热图。Grad-CAM也比CAM[47]实现了更好的top-1定位误差,这需要改变模型结构,需要重新训练,从而实现更差的分类误差(top-1增加2.98%),而Grad-CAM在分类性能上没有下降。
为了衡量Grad-CAM是否有助于区分类别,本文从VOC 2007 验证集合中选择了恰好包含两个注释类别的图像,并为每一个类别创建可视化。对于VGG-16和Alex-Net CNN,本文使用四种技术获得特定类别的可视化:反褶积、引导反向传播和每种方法的Grad-CAM版本(反褶积Grad-CAM和引导Grad-CAM)。本文在Amazon Mechanical Turk(AMT)上向43名工人展示可视化效果,并询问他们“图像中描述了两种对象类别中的哪一种?”如图3所示。
图3:AMT界面,用于评估类区分(左)和可信度(右)的不同可视化。Guided Grad-CAM优于基线方法,这表明本文的可视化更具类区分性,并帮助人类信任更精确的分类器。
实验使用了90对图像类别对的所有4种可视化(即360种可视化);对每幅图像收集9个评分,根据ground truth情况进行评估,并取平均值以获得准确度。当查看Guided Grad-CAM时,人类受试者可以正确识别61.23%中显示的类别。(相比之下,引导反向传播为44.44%;因此,Grad-CAM提高了16.79%的人类绩效)。
类似地还发现Grad-CAM有助于使反褶积更具类别区分性(从53.33%到61.23%)。在所有方法中,Guided Grad-CAM的性能最好。有趣的是,本文的结果似乎表明,反褶积比引导反向传播更具阶级区分性,尽管引导反向传播比反褶积更美观。据本文所知,本文的评估是第一个量化这一细微差异的评估。
本文使用AlexNet和VGG-16来比较引导反向传播和引导梯度CAM可视化,注意到VGG-16比AlexNet更可靠,精确度为79.09 mAP(与69.20mAP相比)。为了从可视化模型的精度中分离出可视化的功效,本文只考虑了模型与ground truth进行相同预测的实例。根据AlexNet和VGG-16的可视化结果以及预测对象类别,54名AMT工作人员被指示按照明显更可靠/更不可靠(+/-2)、稍微更可靠/更不可靠(+/-1)和同等可靠(0)的比例对模型的可靠性进行评分。
该接口如图3所示。为了消除任何偏差,VGG和AlexNet以近似相等的概率分配给model1。值得注意的是,本文发现,尽管预测完全相同,但人类受试者能够简单地从不同的解释中识别出更准确的分类器(VGG性能比AlexNet好)。通过引导反向传播,人类将VGG的平均分数指定为1.00,这意味着它比AlexNet更可靠,而Guided Grad-CAM的得分更高,为1.27,这更接近于说VGG显然更可靠。
因此,本文的可视化可以帮助用户信任一个模型,该模型可以根据单独的预测解释进行更好的概括。
可视化对模型的忠实性是指它能够准确地解释模型学习到的特征。
为了进行比较,本文需要一个具有高局部忠实度的参考解释。这种可视化的一个明显的选择是image occlusion[45],本文测量输入图像的patch被遮挡时CNN得分的差异。有趣的是,改变CNN得分的patch也是Grad-CAM和Guided Grad-CAM赋予其高强度的patch,在PASCAL 2007的2510幅图像中平均达到了0.254和0.261的相关性(Guided Backpropagation、c-MWP和CAM分别达到0.168、0.220和0.208)。
这表明,与现有的所有方法相比,Grad-CAM的可视化效果更忠实于原始模型。通过定位实验和人体研究,本文发现Grad-CAM的可视化效果更易解释,通过与闭塞图的相关性,本文发现Grad-CAM对模型的忠实度更高。
本文使用Guided Grad-CAM来分析VGG-16 在ImageNet分类上的失败模式[9]。为了看到一个网络在犯什么错误,本文首先得到网络(VGG-16)未能正确分类的例子。对于被错误分类的例子,本文使用Guided Grad-CAM来显示正确和预测的类别。与其他方法相比,Guided Grad-CAM可视化允许这种分析的一个主要优势是它的高分辨率和高度区分类别的能力。从图4中可以看出,有些失败是由于ImageNet分类中固有的模糊性造成的。本文还可以看到,看似不合理的预测都有合理的解释。
图4:在这些情况下,模型(VGG-16)未能在其前1(a和d)和前5(b和c)预测中预测正确的类别。如果不考虑预测类的可视化,人类将很难解释其中的一些预测。但对于Grad-CAM来说,这些错误似乎是有道理的。
Grad-CAM的另一个用途:识别并减少训练数据集的偏见。
本文为 "医生 "和 "护士 "的分类任务调整了一个ImageNet训练的VGG-16模型。本文使用来自一个流行的图像搜索引擎的前250张相关图像(针对每个类别)建立了本文的训练数据集。尽管训练后的模型取得了很好的验证准确率(82%),但它的泛化效果并不理想。
对模型预测的Grad-CAM可视化显示,模型已经学会了看人的脸/发型来区分护士和医生,从而学会了一种性别刻板印象。事实上,该模型把几个女医生误认为是护士,把男护士误认为是医生。很明显,这是有问题的。结果发现图像搜索结果是有性别偏见的(78%的医生图像是男性,93%的护士图像是女性)。
通过这种从本文的可视化中获得的直觉,本文通过在训练集中加入男护士和女医生来减少训练集的偏差,同时保持每类图像的数量与以前相同。重新训练的模型现在可以更好地概括为一个更平衡的测试集(90%)。额外的分析以及两个模型的Grad-CAM可视化可以在[38]中找到。这个实验表明,Grad-CAM可以帮助检测和消除数据集中的偏见,这不仅对泛化很重要,而且随着社会上更多的算法决策,对公平和道德的结果也很重要。
最后,本文将本文的Grad-CAM技术应用于图像说明[6,21,43]和视觉问题回答(VQA)[3,14,32,36]任务。本文发现,与基线可视化相比,Grad-CAM为这些任务带来了可解释的视觉解释,而基线可视化在不同的预测中并没有明显的变化。需要注意的是,现有的可视化技术要么是没有类别区分的(引导反向传播,解卷积),要么是根本无法用于这些任务或架构,要么是两者都有(CAM或c-MWP)。
在这一节中,本文使用Grad-CAM对一个图像字幕模型的空间支持进行了可视化。本文将Grad-CAM建立在公开可用的neuraltalk2之上,该模型对图像使用了一个微调的VGG-16 CNN和一个基于LSTM的语言模型。请注意,这个模型没有一个明确的注意力机制。给定一个标题,本文计算其对数概率的梯度,即CNN最后一个卷积层(VGG16的conv5_3)中的单元,并如第三节所述,生成Grad-CAM可视化。
见图5a。在第一个例子中,尽管风筝和人的尺寸相对较小,但生成的标题的Grad-CAM地图还是将每个出现的风筝和人都定位了。在下一个例子中,注意到Grad-CAM如何正确地突出了比萨饼和男人,但忽略了附近的女人,因为标题中没有提到 “女人”。更多定性的例子可以在[38]中找到。
本文通过与occlusion map的相关性来量化Grad-CAM的性能,如第5.3节所述。Grad-CAM实现了0.60±0.038的等级相关(与occlusion map),而Guided Backpropagation实现了0.42±0.038,表明本文的Grad-CAM视觉化的忠实度更高。
图6:VQA实验的定性结果:(a)给出左边的图像和问题“消防栓是什么颜色的?”,本文对Grad-CAM和Guided Grad-CAM进行可视化,以获得“红色”、“黄色”和“黄色和红色”的答案。Grad-CAM可视化具有高度的可解释性,有助于解释任何目标预测–对于“红色”,模型将重点放在消防栓底部的红色部分;当被迫回答“黄色”时,模型集中在顶部的黄色盖子上,当被迫回答“黄色和红色”时,它会看到整个消防栓(b)本文的方法能够提供解释性解释,即使是复杂的模型。