特征可视化技术(CAM)-1-Grad-CAM-论⽂学习
百度翻译在线翻译Grad-CAM: Visual Explanations from Deep Networks via Gradient-bad Localization Abstract
我们提出了⼀种技术,⽤于为基于卷积神经⽹络(CNN)的⼤型模型的决策⽣成“可视化解释”,使它们更加透明和可解释。
我们的⽅法——Gradient-weighted Class Activation Mapping (Grad-CAM),使⽤流⼊最后卷积层的任何⽬标概念的梯度(如在⼀个分类⽹络
的“狗”或在⽹络字幕中⼀系列的词)产⽣⼀个粗定位map,⽤于强调图像中⽤于预测指定概念的重要区域。
称赞人的话与以前的⽅法相⽐,Grad-CAM适⽤于各种各样的CNN model-families: (1) 使⽤全连接层的CNNs(例如VGG), (2) ⽤于结构化输出(如字幕)的CNNs,(3)⽤于有着多模式输⼊(如视觉问答)任务的CNNs或强化学习,所有的实现都不需要架构更改或重新训练。我们将Grad-CAM与现有的细粒度可视化结合起来,创建⼀个⾼分辨率的分类可视化、Guided Grad-CAM,并将其应⽤于图像分类、图像字幕和视觉问答(visual question answering,VQA)模型,包括基于resnet的架构。
在图像分类模型的上下⽂中,我们的可视化(a)提供这些模型的失效模式的原因(说明看似不合理的预测有
合理的解释),(b)优于在ILSVRC-15 weakly-supervid定位任务中的⽅法,(c)对对抗性扰动具有鲁棒性,(d)更忠实于底层模型,和(e)通过确定数据集的bias,帮助实现模型泛化。对于图像字幕和VQA,我们的可视化显⽰,即使是⾮注意的模型也能学会定位输⼊图像的区分性区域。
四级缺考1 Introduction
基于卷积神经⽹络(CNN)的深度神经模型在各种计算机视觉任务实现了前所未有的突破,从图像分类[33、24]、对象检测[21],语义分割[37]图像字幕[18,55,7,29],视觉问答[3,20,42,46]和最近出现的,视觉对话[11、13、12]和embodied问答[10,23]。虽然这些模型具有优越的性能,但由于它们⽆法分解为独⽴的直观组件,因此很难解释[36]。因此,当今天的智能系统出现故障时,它们通常会在没有警告或解释的情况下失败,导致⽤户盯着⼀个不连贯的输出,纳闷系统为什么会这样做。
Interpretability matters. 为了在智能系统中建⽴信任,并使其有意义地融⼊我们的⽇常⽣活,很明显,我们必须建⽴“透明”的模型,能够解释为什么它们会预测它们预测的东西。⼴义上说,这种透明度和解释能⼒在⼈⼯智能(AI)进化的三个不同阶段是有⽤的。⾸先,当AI明显弱于⼈类且还不能可靠部署时(例如,视觉答[3]),透明度和解释的⽬标是识别失败模式[1,25],从⽽帮助研究⼈员将他们的努⼒集中在最富有成效的研究⽅向。其次,当⼈⼯智能与⼈类相当并且可可靠部署时(例如,在⾜够的数据上训练的图像分类[30]),⽬标是在⽤户中建⽴适当的信任和信⼼。第三,当AI明显⽐⼈类强的时候(例如
国际象棋或围棋[50]),解释的⽬标是机器教学[28]——也就是说,机器教会⼈类如何做出更好的决策。
在准确性和简单性或可解释性之间通常存在权衡。经典的基于规则或专家系统[26]具有⾼度的可解释性,但不是⾮常精确(或健壮)。每个阶段都是⼿⼯设计的可分解管道,因此被认为更具有可解释性,因为每个单独的组件都假定有⼀个⾃然直观的解释。通过使⽤深层模型,我们牺牲了可解释的模块来实现不可解释的模块,这些模块通过更抽象(更多层次)和更紧密的集成(端到端训练)来实现更好的性能。最近引⼊的深度残差⽹络(ResNets)[24]的深度超过200层,并在⼀些具有挑战性的任务中显⽰了最先进的性能。这种复杂性使得这些模型难以解释。因此,深层模型开始探索可解释性和准确性之间的范围。
Zhou等⼈[59]最近提出了⼀种名为Class Activation Mapping (CAM)的技术,⽤于识别不包含任何全连接层的受限类图像分类CNNs所使⽤的鉴别区域。从本质上说,这项⼯作牺牲了模型的复杂性和性能,以获得模型⼯作的更⼤透明度。相反,我们在不改变其架构的情况下使现有的最先进的深度模型具有可解释性,从⽽避免了可解释性与准确性之间的权衡。我们的⽅法是⼀个CAM的泛化[59],适⽤于⼴泛的CNN模型家族: (1) 使⽤全连接层的CNNs(例如VGG), (2) ⽤于结构化输出(如字幕)的CNNs,(3)⽤于有着多模式输⼊(如视觉问答)任务的CNNs或强化学习,⽆需架构更改或重新训练。
What makes a good visual explanation? 以图像分类[14]为例,该模型⽤于证明任何⽬标类别的“良好”的视觉解释应是(a)具有类别区分度的(即在图像中定位该类别)和(b)是⾼分辨率的(即能捕捉细粒度的细节)。
图1显⽰了“tiger cat”类(上⼀⾏)和“boxer”(狗)类(下⼀⾏)的⼀些可视化结果。像Guided Back-propagation[53]和Deconvolution[57]这样的像素空间梯度可视化⽅法是⾼分辨率的,并且突出了图像中的细粒度细节,但是没有类别区分度(图1b和图1h⾮常相似)。
相⽐之下,像CAM或我们提出的Gradient-weighted Class Activation Mapping (Grad-CAM)这样的定位⽅法是具有⾼度类别可区分度的(图1c 中的“猫”解释中只强调了“猫”区域,⽽没有强调“狗”区域,图1i
中也是如此)。
为了结合这两个⽅法的优点,我们展⽰了将现有的像素空间梯度可视化⽅法与Grad-CAM相融合,从⽽创建具有⾼分辨率和类别可区分
的 Guided Grad-CAM可视化⽅法是可能的。因此,即使图像中包含了多种可能概念的证据,图像中与任何感兴趣的决策相对应的重要区域也会以⾼分辨率细节显⽰出来,如图1d和1j所⽰。当对“tiger cat”进⾏可视化显⽰时,Guided Grad-CAM不仅突出了猫的区域,还突出了猫⾝上的条纹,这对于预测特定种类的猫很重要。
总的来说,我们的贡献有:
(1)我们介绍⼀种名为Grad-CAM的类别可区分的定位技术,它可以为任何基于CNN的⽹络⽣成可视化解释,⽽不需要进⾏架构更改或再训练。我们评估了Grad-CAM的定位(第4.1节)和对模型的忠诚度(第5.3节),在这些⽅⾯,它都优于基线的效果。
trips
(2)我们将Grad-CAM应⽤于现有的top-performing 的分类、字幕(第8.1节)和VQA(第8.2节)模型。对于图像分类,我们的可视化帮助我们了解当前CNNs的失败(第6.1节),表明看似不合理的预测有合理的解释。对于字幕和VQA,我们的可视化显⽰,普通的CNN + LSTM模型通常在定位区分图像区域⽅⾯⾮常出⾊,尽管它们没有在grounded image-text对上接受过训练。
(3)我们展⽰了如何通过揭⽰数据集中的偏差来帮助诊断错误模式的概念证明。这不仅对泛化很重要,⽽且对公平和⽆偏差的结果也很重要,因为社会上越来越多的决策是由算法做出的。
(4)我们提出了⽤于图像分类和VQA的ResNets[24]的Grad-CAM可视化⽅法(第8.2节)。
(5)我们使⽤Grad-CAM中的神经元重要性和[4]中的神经元names,获得模型决策的⽂本解释(第7节)。
(6)我们在⼈类⾝上进⾏的研究表明(第5节),Guided Grad-CAM解释是具有类别可区分度的,它不仅帮助⼈类建⽴信任,⽽且还帮助未经训练的⽤户成功地区分出“较强”和“较弱”的⽹络,即使两者的预测完全相同。
Paper Organization: 论⽂的其余部分组织如下。在第三节中,我们提出了我们的⽅法—— Grad-CAM和Guided Grad-CAM。在第4和第5部分,我们评估了Grad-CAM定位能⼒、类别辨别⼒、可信度和忠诚度。在第6节中,我们展⽰了Grad-CAM的⼀些使⽤案例,如诊断图像分类CNNs和在数据集中识别偏差。在第7节中,我们提供了⼀种⽅法,去使⽤Grad-CAM以获得⽂本解释。在第8节中,我们将展⽰如何将Grad-CAM应⽤于视觉和语⾔模型——如图像字幕和视觉问答(VQA)。
2 Related Work
我们的⼯作借鉴了最近在CNN可视化、模型信任评估和弱监督定位⽅⾯的⼯作。
六级成绩查询入口官网
Visualizing CNNs. 许多之前的作品[51,53,57,19]通过突出“重要”像素(即这些像素强度的变化对预测分数的影响最⼤)来可视化CNN的预测。具体来说,Simonyan等⼈的[51]可视化使预测类分数像素强度的偏导数,⽽Guided Backprop-agation[53]和Deconvolution[57]
对“raw”梯度进⾏修改,从⽽导致质量改进。这些⽅法在[40]中进⾏了⽐较。尽管⽣成了细粒度的可视化结果,但这些⽅法并不具有类别区分度。不同类的可视化结果⼏乎是相同的(参见图1b和图1h)。
其他可视化⽅法合成图像以最⼤限度地激活⼀个⽹络单元[51,16]或反转⼀个潜在表⽰[41,15]。尽管这些图像可以是⾼分辨率的和类别可区分的,但它们不特定于单个输⼊图像,⽽是对整个模型进⾏可视化。
Asssing Model Trust. 受[36]可解释性概念和[47]模型信任评估的启发,我们通过类似于⼈类研究[47]的⽅式对Grad-CAM可视化进⾏评估,以表明它们可以成为⽤户评估和信任⾃动化系统的重要⼯具。
Aligning Gradient-bad Importances. Selvaraju等⼈[48]提出了⼀种使⽤我们⼯作中引⼊的基于梯度的神经元重要性的⽅法,并将其映射到⼈类的特定类领域知识,以便学习新的类的分类器。在未来的⼯作中,Selvaraju等⼈[49]提出了⼀种⽅法,将基于梯度的重要性与⼈类注意⼒maps进⾏⽐对,以便于使视觉和语⾔模型相⼀致。
精彩的电影Weakly-supervid localization. 另⼀项相关⼯作是CNNs环境下的弱监督定位,其任务是仅使⽤整体图像类标签对图像中的对象进⾏定位[8,43,44,59]。
与我们的⽅法最相关的是⽤于定位[59]的 Class Activation Mapping (CAM) ⽅法。该⽅法修改了图像分类CNN架构,⽤卷积层和全局平均池化[34]代替全连接层,从⽽实现了特定类的feature map。其他⼈研究了使⽤全局最⼤池化[44]和log-sum-exp池化[45]的类似⽅法。
CAM的缺点是需要在softmax层之前有feature maps,所以它只适⽤于在预测之前对卷积maps进⾏全局平均pooling的特定类型CNN架构(即conv feature maps→全局平均pooling→softmax层)。在某些任务(如图像分类)上,这样的架构可能⽆法达到与⼀般⽹络相⽐的精度,或者可能根本不适⽤于其他任务(如图像字幕或VQA)。我们引⼊了⼀种新的⽅法,利⽤梯度信号结合feature maps,不需要对⽹络结构进⾏任何修改。这使得我们的⽅法可以应⽤于现成的基于CNN的架构,包括⽤于图像字幕和视觉问答的架构。对于全卷积架构,CAM是Grad-CAM的⼀种特殊情况。
其他⽅法通过对输⼊图像的扰动进⾏分类来实现定位。Zeiler和Fergus[57]通过遮挡patches和对遮挡图像进⾏分类来⼲扰输⼊,通常导致相关物体被遮挡时分类分数较低。这⼀原理适⽤于[5]的定位。Oquab等⼈[43]对包含⼀个像素的多个patch进⾏分类,然后对这些patch的评分进⾏平均,得到像素的分类评分。与这些不同的是,我们的⽅法⼀次性实现了定位;它只需要对每个图像进⾏⼀次前向和
convincedpartial后向传递,因此通常效率要⾼⼀个数量级。在最近的⼯作中,Zhang等⼈[58]引⼊了contrastive Marginal Winning Probability (c-MWP),这是⼀种Winner-Take-All的概率公式,⽤于建模⽤于神经分类模型的,可以突出区分区域的top-down的注意⼒。其在计算上⽐Grad-CAM昂贵,并且只适⽤于图像分类CNNs。此外,Grad-CAM在定量和定性评价⽅⾯优于c-MWP(见4.1节和D节)。
3 Grad-CAM
许多之前的研究已经断⾔,CNN中更深层次的表征捕获了更⾼层次的视觉构造[6,41]。此外,卷积层⾃然保留了在全连接的层中丢失的空间信息,因此我们可以期待最后的卷积层在⾼级语义和详细空间信息之间有最好的折衷结果。这些层中的神经元在图像中寻找特定类的语义信息(⽐如物体部分)。Grad-CAM使⽤流进CNN最后⼀个卷积层的梯度信息,为每个神经元分配⼀个感兴趣的特定决策的重要性值。虽然我们的技术是相当普遍的,因为它可以⽤来解释深层⽹络的任何层的激活,但在这项⼯作中,我们只关注于解释输出层的决策。
如图2所⽰,
为了获得任意类c,宽为u、⾼为v的类别可区分的定位map ,我们⾸先计算类c分数y c(before the softmax)关于⼀个卷积层的feature map激活A k的梯度。然后对该梯度流的宽和⾼维度(分别⽤i和j标明)进⾏全局平均池化,去获得神经元重要性权重:
在计算的同时后向传播关于激活的梯度,精确的计算相当于权重矩阵和关于激活函数的梯度的连续矩阵乘积,直到梯度被传播到最后的卷积层。因此,权重表⽰A以下深度⽹络⼀个partial linearization,⽤于捕获对于⽬标类c来说,feature map k的重要性。
bruce我们对正向激活map A进⾏加权组合,然后使⽤ReLU函数:
注意,这将得到⼀个与卷积特征图(如VGG[52]和AlexNet[33]⽹络的最后⼀个卷积层为14×14)相同⼤⼩的粗略heatmap。我们对maps的线性组合使⽤ReLU,因为我们只对对感兴趣的类别有positive影响的特征感兴趣,例如,为了增加y c,需要增加像素强度。negative像素很可能属于图像中的其他类别。正如预期的那样,如果没有这个ReLU,定位maps有时会突出显⽰更多想要的类,并且在定位⽅⾯执
⾏得更差。图1c、1f和1i、1l分别显⽰了“tiger cat”和“boxer(狗)”的Grad-CAM可视化结果。消融研究在B部分。
⼀般来说,y c不必是⼀个图像分类CNN产⽣的类分数。它可以是任何可区分的激活,包括标题中的⽂字或对问题的回答。
3.1 Grad-CAM generalizes CAM
在本节中,我们将讨论Grad-CAM和Class Activation Mapping(CAM)[59]之间的联系,并正式证明Class Activation Mapping将CAM推⼴到各种基于CNN的架构中。回想⼀下,CAM为⼀个图像分类CNN⽣成了⼀个定位maps,它具有⼀种特定的架构,其中全局平均池化的卷积
feature map直接被输⼊softmax。特别的是,让倒数第⼆层⽣成K个feature maps ,使⽤i、j标明其中的⼀个元素。所以表⽰feature map A k位置(i,j)上的激活。然后该feature maps使⽤Global Average Pooling(GAP)进⾏空间池化,然后线性转换去⽣成每个类c 的分数Y c,
(其实就是对最后⼀个卷积层的输出 + GAP + fc层 = score)
定义F k为全局平均池化输出:
使⽤下⾯的公式计算最后的分数:
其中是连接第k个feature map和第c个类的权重。计算类c分数(Y c)关于feature map F k的梯度:
计算(4)关于的偏导数,我们可得。替换(6)中式⼦,得:roadtrip
从等式(5)我们得到。因此得:
troy的意思
对等式(8)两边的所有像素(i,j)求和:
因为Z和与(i,j)⽆关,所以等式(9)可以写成:
注意,Z是feature map像素的数量()。因此最后式⼦可得:
等式(10)再乘上在可视化过程中进⾏标准化的⽐例常数(1/Z),就等价于等式(1)中Grad-CAM使⽤的了。因此,Grad-CAM是CAM的严格泛化。这种泛化使我们能够从基于CNN的模型中⽣成可视化的解释,这些模型将卷积层与更复杂的交互作⽤串联起来,⽐如图像字幕和VQA(8.2节)。
3.2 Guided Grad-CAM
虽然Grad-CAM具有类别区分和定位相关图像区域的能⼒,但它缺乏像像素空间梯度可视化⽅法(Guided Backpropagation [53],Deconvolution[57])那样突出细粒度细节的能⼒。Guided Backpropagation使相对于图像的梯度可视化,在通过ReLU层反向传播时,负梯度被抑制。直观地说,它的⽬的是捕获神经元检测到的像素,⽽不是抑制神经元的像素。如图1c所⽰,Grad-CAM可以很容易地对cat进⾏定位;然⽽,从粗略的heatmap中还不清楚为什么⽹络预测这⼀特殊实例为“tiger cat”。为了结合两者的优点,我们通过element-wi的乘法将引导Guided Backpropagation和Grad-CAM可视化融合在⼀起(⾸先使⽤双线性插值向上采样到输⼊图像分辨率)。图2左下⾓说明了这种融合。这种可视化既⾼分辨率(当感兴趣的类别是“tiger cat”时,它会识别出重要的“tiger cat”特征,⽐如条纹、尖尖的⽿朵和眼睛),⼜具有类别可区分性(它会突出“tiger cat”,但不突出“boxer(狗)”)。⽤Deco
nvolution代替Guided Backpropagation可以得到类似的结果,但是我们发现Deconvolution可视化有伪影,⽽且Guided Backpropagation通常噪声更⼩。
3.3 Counterfactual Explanations
对Grad-CAM稍加修改,我们就可以得到⼀些解释,这些解释强调了对那些可能使⽹络改变其预测的区域的⽀持。因此,移除这些地区的概念将使模型对其预测更有信⼼。我们把这种解释⽅式称为反事实解释(counterfactual explanations)。
具体地说,我们对卷积层的特征映射A的y c(类c的分数)的梯度取反。因此,重要性的权重,现在成为:
如(2)所⽰,我们对正向激活maps A进⾏加权求和,加权后的权重为,然后再进⾏ReLU,得到反事实的解释,如图3所⽰。