本文记录了博主阅读论文《Grad-CAM: Why did you say that? Visudal Explanations from Deep Networks via Gradient-based Localization》的笔记,代码,demo。更新于2019.05.31。
文章目录
Abstract
提出了一个通过观察对于估计更重要的区域,实现将基于神经网络的模型变得更灵活的方法。这个方法称为Gradient-weighted Class Activation Mapping (Grad-CAM),利用了传递到CNN最后一层的与类别相关的梯度信息来生成图像中重要区域的粗略位置信息。Grad-CAM是CAM的一个严格范化(strict generalization)。CAM局限于CNN模型的有限类别(narrow class),而Grad-CAM能够使用人和基于CNN模型。【意思就是Grad-CAM不受限于网络模型而CAM受限】。论文中还展示了Grad-CAM如何能够结合现有的像素级显示(pixel-space visualizations,比如Guided Backpropagation)来生成更高分辨率的分类器(Guided Grad-CAM)。
论文作者还生成了Grad-CAM和Guided Grad-CAM的视觉解释来帮助理解图像分类、图像说明(iamge captioning)和视觉问题回答(VQA,visual question answering)模型。在图像分类模型的上下文中,本文的显示(a)考察这些模型的失败情况(对于看似无法理解的估计其实有合理的解释);(b)在ILSVRC-15弱监督位置任务中的网络模型能够实现更好的pixel-space gradient visualizations(比如Guided Backpropagation和Deconvolution)。对于图像说明和VQA,本文的模型在莫种程度上证明了即使不用真值image-text pairs训练,CNN+LSTM模型通常也能够实现更好的定位。
最后,我们设计并实施了调查,来看显示Guided Grad-CAM解释能否帮助用户建立对深度学习网络的估计结果的新人。有趣的是,他们证明了Guided Grad-CAM能够帮助没有受训过的用户,只依靠不同的解释,成功辨别强网络和弱网络。
Introduction
Related Work
Approach
Class Activation Mapping(CAM)
CAM中对指定类型的图像分类结构提取坐标图,其中要求最后一层全局平均池化的结果直接送入softmax。具体而言,假设倒数第二层生成了K个宽为
u
u
u高为
v
v
v的特征图
A
k
∈
R
u
×
v
A^k\in\mathbb R^{u\times v}
Ak∈Ru×v。这些特征图随后用全局平均池化(Global Average Pooling, GAP)和线性变换生成对c个类别的score
y
c
y_c
yc:
为了生成对于类别c的位置图
L
C
A
M
c
∈
R
u
×
v
L_{CAM}^c\in\mathbb R^{u\times v}
LCAMc∈Ru×v,CAM计算最后一层权重所学习到的最终特征图的线性组合:
用于现实目的,这个被归一化在0到1之间。为了将CAM应用在在最后一层之前使用了多层全连接层的网络上,全连接层被替换成卷积层,重新训练网路。
Gradient-weighted Class Activation Mapping
为了对一般结构得到类别敏感的位置图Grad-CAM
L
G
r
a
d
−
C
A
M
c
∈
R
u
×
v
L^c_{Grad-CAM}\in\mathbb R^{u\times v}
LGrad−CAMc∈Ru×v,文中计算了一个卷积层
y
c
y^c
yc相对于特征图
A
A
A的梯度,即
∂
y
c
∂
A
i
j
k
\frac{\partial y^c}{\partial A^k_{ij}}
∂Aijk∂yc。这个梯度遵循全局池化回去得到权重
α
k
c
\alpha^c_k
αkc:
这个权重
α
k
c
\alpha^c_k
αkc代表神经网络从
A
A
A中传递回来的部分线性(partial linearization),并获取了特征图
k
k
k对于目标类别KaTeX parse error: Double superscript at position 4: c^2^̲的重要性。凭经验,用全局平均池…y^c$不需要是CNN图像分类器的类别score,而可以是任何可微激活(differentiable activation)。
与CAM相同,Grad-CAM的热度图也是一个特征图的加权组合,但是后面跟了ReLU:
得到的热度图的尺寸与卷积特征图尺寸是相同的(对于VGG和AlexNet的最后一层是14x14)。为了实现下图中的显示(1c、1h等),
L
G
r
a
d
−
C
A
M
c
L^c_{Grad-CAM}
LGrad−CAMc被归一化到0到1之间。
对于CAM可使用的网络结构(即全卷积网络的输出为
A
A
A,后面接一个全局平均池化和softmax),CAM中调用的权重
w
k
c
w_k^c
wkc是精确的
α
k
c
\alpha^c_k
αkc。除了上式中的ReLU使得Grad-CAM成为CAM的范化。ReLU的动机是:我们只关心对于结果有正面影响的特征,即像素点的intensity应该为了增加
y
c
y^c
yc而增加。既然特征图
A
A
A已经是非负的了,就用了上式来强化这些像素点。正如推测,在没有ReLU的情况下,定位图有时候会在关注区域以外也进行标注,从而影响精度(见支撑材料)。直观上来说,负值代表像素可能属于另一个类别的图像,因此需要用ReLU将它们评比出去。上图中的1c和1h分别代表Grad-CAM对于猫和狗的可视化结果(更多结果见支撑材料)。
这个ReLU也使得Grad-CAM可以适用于除了分类以外的任务,比如温中实验的图像标注和视觉问答。
Guided Grad-CAM
尽管Grad-CAM可视化是类别可分的而且能够不错地定位相关图像区域,但是它们缺少了显示fine-grained importance的能力,比如pixel-space梯度可视化方法(Guided Back-propagation和Deconvolution)。比如上如中的1c,Grad-CAM能够轻松定位猫的位置,但是在低分辨率下,热度图很难解释为什么这个实例是tiger cat。为了结合这两种方式的优势,这里将Guided Backpropagation和Grad-CAM可视化通过point-wise乘法整合在一起(先把
L
C
A
M
c
L^c_{CAM}
LCAMc用双线性插值上采样到输入图像分辨率)。下图左下角显示这个融合过程。用Deconvolution替代Guided Backpropagation能够得到相似的结果,但是作者发现Deconvolution有artifacts,所以这里选择了Guided Backpropagation(无噪声)。
根据以往的研究结果,作者默认最后一层中有着最高级的语义特征和最细节的空间信息。下图显示了在不同卷积层下的效果(通过替换特征图
A
A
A)来证明这个假设。
Weakly-supervised Localization
这一部分平谷了Grad-CAM在图像分类上的定位能力(同时提供bounding box和类别标签)。与CAM的做法相同,给定一个图像,先用网络获取类别估计。随后,用Grad-CAM定位每个估计类别,再用阈值(最大值的15%)将定位图二值化。最后,在单个最大的分割周围生成bounding box。
下表是结果:
Evaluating Visualizations
实验中用到了PASCAL VOC 2007训练集下fine-tuned的VGG和AlexNet CNNs,同时用到验证集生成可视化结果。