发布时间:2023-06-25 11:30
Grad-CAM:Visual Explanations from Deep Networks via Gradient-based Localization这篇文章主要介绍了一种梯度类加权激活映射(Gradient-weighted Class Activation Mapping,简写成Grad-CAM)方法。该方法可使用任意目标概念的梯度,然后将其流入最后的卷积层生成一个粗略的定位图,以此来突出图像中重要区域,该区域即为输出预测的依据。
在许多的文献中已有如下结论:随着卷积神经网络(CNN)层次的加深,系统对于输入图片(或者其他输入)中某些类别的捕获将更加的具体。上述语句笔者理解如下:若输入一张图片,需识别图片中的猫,那么随着卷积神经网络的加深,第层卷积层对猫的特征的捕获是不如第层卷积层的。即在某个卷积神经网络中,最后的卷积层对图片(或者其他输入)特征的捕获应该是最具体的,但是在具有全连接层的卷积神经网络中,最后的卷积层会将其激活值进行空间展开,因此会丢失其空间信息。所以Grad-CAM使用流向CNN中最后卷积层的梯度信息来理解每个神经元对于类别识别的重要性。对于类别c,最后卷积层中第k个神经元权重的计算公式如下:
上述公式可理解为:取softmax层的输入,对最后卷积层的第k个神经元的第ij个输入像素值求偏导,然后进行全局平均池化,由此可得最后卷积层中第k个神经元权重。对于类别c,分类定位图计算公式如下:
上述公式可理解为:对最后卷积层不同神经元的输入乘上各自的神经元权重,然后对所有神经元的对应值进行求和,其中ReLU函数起到保留对分类具有积极作用的像素值,抑制对分类具有消极作用的像素值,然后获得一个粗糙的热图,即分类定位图。效果如下图中的(c)与(i),其中(a)与(g)为原图,第一行图片是为了识别图中的类别“猫”,第二行是为了识别图中的类别“狗”。
①适用于具有全连接层的卷积神经网络(如VGG)
②适用于具有结构化输出的卷积神经网络(如字幕)
③适用于具有多模态输入任务的卷积神经网络(如视觉问答)
①Grad-CAM是CAM(Class Activation Mapping)的一般化
CAM只适用于在预测之前对卷积映射进行全局平均池化的特定卷积神经网路架构(即conv feature maps -> global average pooling -> softmax layer),在某些任务上(如图片分类),此架构与一般网络相比精度可能较低,或者根本不适用于任何其他任务(如字幕或视觉问答)。对于适用CAM的网络架构,其预测原理如下:
上述公式可理解为:让卷积神经网络的倒数第二层(即softmax层的前一层)产生k个特征图,然后将这些特征图分别进行全局平均池化,将不同神经元的特征图乘上对应的权重再进行求和,即可产生类别c的分数,即为判断类别的依据。将上式交换求和顺序,可得:
将不同神经元的特征图乘上对应的权重,然后将不同神经元的特征图按照像素点的位置进行相加,就可获得CAM的分类定位图。并非所有的体系结构都具有将特征映射和输出连接起来的,而Grad-CAM使用代替了,从而实现了将CAM一般化到Grad-CAM。
文章中对于视觉可解释性提出问题:What makes a good visual explanation?
针对此问题,文章中给出了两点要求:
①类别可区分性(即定位图像中的类别)
②高分辨率(即捕获细粒度的细节)
根据上图,我们可看出Grad-CAM(图(c)与图(i))仅满足要求①,可以很明显看出导致最终的决策是由哪部分图像所决定的,但缺乏相关的细节,只得到一个粗糙的定位图;然而导向反向传播(Guided Backpropagation,图(b)与图(h))仅满足要求②,上图中对“猫”类与“狗”类的分别决策不能看出是由哪部分所决定,但是它保留了足够多的细节。因此,自然而然的想到将Grad-CAM与Guided Backprop结合起来,为保留二者的优点,从而引出Guided Grad-CAM,计算思路如下图:
在计算出Grad-CAM与Guided Backprop(在文章上作者没有提及此方法的具体计算方式)后,将二者的结果直接进行点乘就可获得Guided Grad-CAM的输出。
根据第一张图片可以看出Guided Grad-CAM的输出(图(d)与图(j))成功保留了上面所提及的类别可区分性与高分辨率,即Guided Grad-CAM可称得上一种好的视觉解释方法。
笔者水平有限,难免存在理解不当之处,欢迎批评指正,联系邮箱:changhao1997@foxmail.com