前言

撰写本文的目的是为了总结在日常阅读论文算法的各个比较算法。通常在论文的实验部分,作者会将自己提出的算法与之前的算法进行比较。本文即为这些算法做统一梳理,从过去的论文中学习显著图这一研究领域的进展。

类激活映射方法

GradCAM++

简介

GradCAM++[1]是对经典的GradCAM[2]算法的改进。[1]的motivation是如果输入图像中同一类别的物体多次出现,GradCAM不能正确地定位图像中的各个物体,如图所示。

GradCAM的缺点

方法

AkA^k为最尾卷积层的第kk个特征图,GradCAM算法计算的类激活映射为

Lijc=wkcAijk(1.1)L^c_{ij}=\sum{w_k^c\cdot A^k_{ij}}\tag{1.1}

其中,对每个特定的特征图AkA^k的权重由下式计算

kkc=1ZYcAijk(1.2)k^c_k=\frac{1}{Z}\sum\sum\frac{\partial Y^c}{\partial A^k_{ij}}\tag{1.2}

这里ZZ是特征图中的像素个数,YcY^c是类别cc的得分。

有前文指出,每一个特征图AkA^k都是由某个抽象视觉模式(abstract visual pattern)所激活的。也就是说,如果Aijk=1A^k_{ij}=1,则说明该特征图对应的视觉模式被检测到,反之亦然。那么,如果偏导YcAijk\frac{\partial Y^c}{\partial A^k_{ij}}较大,特征图中该像素对其视觉模式中物体的出现有贡献。这意味着特征图所对应的模式需要在图像中显示得相当吻合。若一个物体的方向、视角稍有不同,或是物体中的某些部分激活了不同的特征图,将导致原本其对应的特征图不被激活。

为解决这个问题,需要将权重系数取像素级梯度的加权平均值即可。这也是GradCAM++的另一个优点。即将权重改为如下定义

wkc=ijαijkcrelu(YcAijk)(1.3)w_k^c=\sum_i\sum_j\alpha^{kc}_{ij}\cdot relu(\frac{\partial Y^c}{\partial A^k_{ij}})\tag{1.3}

其中,αijkc\alpha^{kc}_{ij}为类别cckk个特征图AkA^k的像素级权重系数,其由下式计算

αijkc={1l,mYcAlmkifYcAijk=10otherwise(1.4)\alpha^{kc}_{ij}=\begin{cases} \frac{1}{\sum_{l,m}\frac{\partial Y^c}{\partial A^k_{lm}}} & if\frac{\partial Y^c}{\partial A^k_{ij}}=1 \\ 0 & otherwise \end{cases}\tag{1.4}

[1]中给出了该公式的进一步解释,在这里不做赘述。

ScoreCAM

简介

ScoreCAM[3]是2020年发表于CVPR上的改进算法。作者认为在GradCAM中,将梯度作为特征图的重要性权重有以下两点问题:

  • 由于sigmoid和ReLU激活函数的使用,导致网络中不可避免的出现梯度饱和的现象。其后果是,输出对输入或内部层激活的梯度在视觉上提供的信息可能是不准确的(有噪音)。一个例子如下,图中的梯度散布在全图各处。

    image-20220331174530119

  • 梯度不一定与权重高度正相关。对于两个有不同权重的特征图,在上述条件成立下,我们可以说:权重较大的特征图应该比权重较小的特征图对目标分数的提升更重要,或至少同等重要。但这一假设存在反例,如图所示,(2)对应的特征图权重最大,但其对目标分数的提升最少(0.003),而其他比其权重小的特征图则有更大的分数提升。

    不准确的梯度信息

    基于以上问题,ScoreCAM不使用梯度来衡量特征图的重要性,而是使用其对于目标的置信度提升(Increase of Confidence)

    方法

    定义 2.1(置信度提升) 令通用函数Y=f(X)Y=f(X)接收向量X=[x0,x1,...,xn]TX=[x_0,x_1,...,x_n]^T且输出一个标量YY。设基线输入XbX_b,原始输入XX中的xi(i[0,n1])x_i(i\in [0,n-1])YY的贡献cic_i为将XbX_b中的第ii个元素替换为xix_i所导致的改变量(原文中的公式可能出现错误):

    ci=f(XbHi)f(Xb)(2.1)c_i=f(X_b\circ H_i)-f(X_b)\tag{2.1}

    其中HiH_i为与XbX_b相同形状的向量,Hi=[hj]j[0,n1]H_i=[h_j]_{j\in [0, n-1]}hj=I[i=j]h_j=\Bbb{I}[i=j]\circ为哈达玛积。

    定义 2.2(通道级置信度提升) 令卷积神经网络模型Y=f(X)Y=f(X)接收向量XX且输出一个标量YY。选定ff中的卷积层ll及其对应激活图AA,记AlA_l的第kk个通道为AlkA_l^k。设基线输入XbX_bAlkA_l^kYY的贡献由下式定义(原文中的公式可能出现错误):

    C(Alk)=f(XHlk)f(Xb)(2.2)C(A_l^k)=f(X\circ H_l^k)-f(X_b)\tag{2.2}

    其中Hlk=s(Up(Alk))H_l^k=s(Up(A_l^k))Up(Alk)Up(A_l^k)为将AlkA_l^k上采样至输入图像大小的运算子,s()s(\cdot)为将输入矩阵中每个元素归一化至[0,1][0,1]的函数。

    通过以上两个定义后,ScoreCAM的类激活映射为

    LScoreCAMc=ReLU(kαkcAlk)(2.3)L_{ScoreCAM}^c=ReLU(\sum_k\alpha_k^cA_l^k)\tag{2.3}

    其中αkc=C(Alk)\alpha_k^c=C(A_l^k)

    ScoreCAM算法图

基于扰动方法

IntegratedGrad

简介

本文提出了两个归因方法应该满足的公理:敏感性公理和实现不变性公理。在此基础上,作者论证了先前的若干归因方法不能同时满足所提出的两个公理,并引出了IntegratedGrad归因方法[4],其结合了Gradients和LRP[5]或DeepLift[6-7]方法。更多公理定义及细节内容,请读者参考原文。

IntegratedGrad结果图

方法

设函数F:Rn[0,1]F:\mathbb{R}^n\rightarrow [0,1]为深度网络,xRnx \in \mathbb{R}^n为输入向量,xRnx^\prime \in \mathbb{R}^n为基线输入。对图像网络,基线为纯黑图像;对文本网络,基线为全00嵌入向量。

考虑从基线xx^\prime输入xx的直线,integrated gradients即为累加直线上所有点的梯度。具体地,输入xx和基线xx^\prime的integrated gradients的第ii维由下式计算:

IntegratedGradsi(x)=(xixi)×01F(x+α×(xx))xidα(3.1)\mathbf{IntegratedGrads}_i(x)=(x_i-x_i^\prime)\times \int_0^1 \frac{\partial F(x^\prime+\alpha \times(x-x^\prime))}{\partial x_i}d\alpha \tag{3.1}

SmoothGrad

简介

SmoothGrad[8]提出于2017年,其关注于显著图(也称敏感图,sensitivity map)中的噪声问题。作者认为基于输入图像梯度的显著图中凸显的区域时常没有准确高亮出目标物体,因为该梯度信息存在视觉噪声。

显著图中的视觉噪声

造成上述现象的一个可能的解释是:目标分数ScS_c的导数可能在很小的范围内剧烈波动。换句话说,图像中的噪声可能是由于偏导的局部变换造成的,即其并不平滑(smooth)。同时,网络中ReLU的使用将导致ScS_c甚至不连续可导。

导数在小范围内的剧烈波动

上图给出了一个例子。左右两幅图像在RGB三个通道的细微变化时,其导数也有剧烈波动。为此,作者提出使用平均化来平滑图像导数。

方法

设输入图像为xx,类cc的目标分数为ScS_c,显著图的定义为:

Mc(x)=Sc(x)x(4.1)M_c(x)=\frac{\partial S_c(x)}{\partial x}\tag{4.1}

SmoothGrad取xx的领域内的随机样本,并求其平均:

M^c(x)=1n1nMc(x+N(0,σ2))(4.2)\hat{M}_c(x)=\frac{1}{n}\sum_1^nM_c(x+\mathcal{N}(0,\sigma^2))\tag{4.2}

其中,nn为样本数,N(0,σ2)\mathcal{N}(0,\sigma^2)为以σ\sigma为标准差的高斯噪声。

RISE

简介

RISE[9]是一个黑盒(black-box)算法,即该算法将网络视为一个黑盒,不探究网络内部结构,如参数、特征或梯度。RISE算法的主要思想是通过对输入图像进行随机遮挡,记录遮挡图像的网络输出概率,最后根据这些概率将所有遮挡图像加权组合以得到显著图。

RISE框架图

同时,[9]也提出了两个在后续论文中常用的显著图评价指标:deletioninsertion。这两个指标的具体细节于本文主题无关,请读者自行查阅。

方法

f:IRf:I\rightarrow\mathbb{R}为一个黑盒网络模型,MM为与输入图像相同尺寸的二进制遮挡。考虑随机变量f(IM)f(I\odot M),其中\odot为哈达玛积,为遮挡图像的目标分数,定义像素λ\lambda的重要性为当λ\lambda未被遮挡时,即M(λ)=1M(\lambda)=1,所有可能遮盖图像的期望目标分数:

SI,f(λ)=EM[f(IM)M(λ)=1](5.1)S_{I,f}(\lambda)=\mathbb{E}_M[f(I\odot M)|M(\lambda)=1]\tag{5.1}

上式可重写为遮挡mm的求和:

SI,f(λ)=mf(Im)P[M=mM(λ)=1]=1P[M(λ)=1]mf(Im)P[M=m,M(λ)=1](5.2)S_{I,f}(\lambda)=\sum_mf(I\odot m)P[M=m|M(\lambda)=1]\tag{5.2} \\ =\frac{1}{P[M(\lambda)=1]}\sum_mf(I\odot m)P[M=m, M(\lambda)=1]

其中,

P[M=m,M(λ)=1]={0m(λ)=0P[M=m]m(λ)=1=m(λ)P[M=m](5.3)P[M=m,M(\lambda)=1]=\begin{cases} 0 & m(\lambda)=0 \\ P[M=m] & m(\lambda)=1 \end{cases}\tag{5.3} \\ =m(\lambda)P[M=m]

将上式代入(5.2)(5.2),得:

SI,f(λ)=1P[M(λ)=1]mf(Im)m(λ)P[M=m](5.4)S_{I,f}(\lambda)=\frac{1}{P[M(\lambda)=1]}\sum_mf(I\odot m)\cdot m(\lambda) \cdot P[M=m]\tag{5.4}

最终的矩阵形式为:

SI,f=1E[M]mf(Im)mP[M=m](5.5)S_{I,f}=\frac{1}{\mathbb{E}[M]}\sum_mf(I \odot m) \cdot m \cdot P[M=m]\tag{5.5}

这里P[M(λ)=1]=E[M(λ)]P[M(\lambda)=1]=\mathbb{E}[M(\lambda)]。显著图为随机遮挡的加权和,其中权重为随遮挡分布改变的遮挡概率得分。

在实践中,采用蒙特卡洛抽样法,抽取NN个遮挡M1,...,MN{M_1,...,M_N},使用遮挡图像的目标分数进行加权平均再归一化,得到最终的显著图:

SI,f1E[M]Ni=1Nf(IMi)Mi(λ)(5.6)S_{I,f}\approx \frac{1}{\mathbb{E}[M]\cdot N}\sum_{i=1}^Nf(I\odot M_i)\cdot M_i(\lambda)\tag{5.6}

Extremal

简介

Extremal[10]为解决先前工作中的优化问题的不明确问题,引入极端扰动(extremal perturbations)的概念及其计算过程,将扰动分析扩展到深度神经网络的中间激活,而不是输入图像。

extremal示意图

方法

xx为输入图像,Φ(x)R\Phi(x)\in \mathbb{R}为卷积神经网络的输出激活或目标分数,extremal扰动限定于输入图像的固定比例的区域,并从足够平滑的遮挡集M\mathcal{M}中选取:

ma=argmaxmMΦ(mx)λRa(m)(6.1)m_a=\underset {m\in \mathcal{M}}{\mathrm{argmax}} \Phi(m\otimes x)-\lambda R_a(m)\tag{6.1}

其中,λ\lambda为惩罚系数,Ra(m)=vecsort(m)ra2R_a(m)=||\mathrm{vecsort}(m)-\mathbf{r}_a||^2为惩罚项,vecsort(m)\mathrm{vecsort}(m)为将mm向量化并以非降序排序后得到的向量,ra\mathbf{r}_a为有(1a)x(1-a)|x|00紧接axa|x|11的向量。

在上式定义中,遮挡mm仅为区域面积参数aa的函数。aa可由下式确定:

a=argminaΦ(max)Φ0(6.2)a^{\ast}=\underset {a}{\mathrm{argmin}}\Phi(m_a\otimes x)\geq \Phi_0\tag{6.2}

其中,Φ0\Phi_0为模型输出的下界(例如,Φ0=τΦ(x)\Phi_0=\tau\Phi(x)为输出固定比例)。

对于\otimes的定义,设uxu\in x为一个像素,有

(mx)(u)=π(x;u,σmax(1m(u)))(6.3)(m\otimes x)(u)=\pi(x;u,\sigma_{max}\cdot (1-m(u)))\tag{6.3}

其中,π(x;u,σ)R3\pi(x;u,\sigma) \in \mathbb{R}^3为以σ0\sigma \geq 0为扰动强度的局部扰动算子(local perturbation operator),σmax\sigma_{max}为最大扰动强度。特别地,π(x;u,0)=x(u)\pi(x;u,0)=x(u)。这里使用高斯模糊算子πg(x;u,σ)=vxgσ(uv)x(v)vxgσ(uv)\pi_g(x;u,\sigma)=\frac{\sum_{v\in x}g_\sigma(u-v)x(v)}{\sum_{v\in x}g_\sigma(u-v)}gσ(u)=eu22σ2g_\sigma(u)=e^{-\frac{||u||^2}{2\sigma^2}}

对于平滑遮挡集M\mathcal{M}的定义,此处从略。

参考文献

[1] Aditya, C., Anirban, S., Abhishek, D., & Prantik, H. Grad-CAM++: Improved Visual Explanations for Deep Convolutional Networks. arXiv 2018. arXiv preprint arXiv:1710.11063.

[2] Selvaraju R R, Cogswell M, Das A, et al. Grad-cam: Visual explanations from deep networks via gradient-based localization[C]//Proceedings of the IEEE international conference on computer vision. 2017: 618-626.

[3] Wang, H., Wang, Z., Du, M., Yang, F., Zhang, Z., Ding, S., … & Hu, X. (2020). Score-CAM: Score-weighted visual explanations for convolutional neural networks. In Proceedings of the IEEE/CVF conference on computer vision and pattern recognition workshops (pp. 24-25).

[4] Sundararajan, M., Taly, A., & Yan, Q. (2017, July). Axiomatic attribution for deep networks. In International conference on machine learning (pp. 3319-3328). PMLR.

[5] Binder, A., Montavon, G., Lapuschkin, S., Müller, K. R., & Samek, W. (2016, September). Layer-wise relevance propagation for neural networks with local renormalization layers. In International Conference on Artificial Neural Networks (pp. 63-71). Springer, Cham.

[6] Shrikumar, A., Greenside, P., Shcherbina, A., & Kundaje, A. (2016). Not just a black box: Learning important features through propagating activation differences. arXiv preprint arXiv:1605.01713.

[7] Shrikumar, A., Greenside, P., & Kundaje, A. (2017, July). Learning important features through propagating activation differences. In International conference on machine learning (pp. 3145-3153). PMLR.

[8] Smilkov, D., Thorat, N., Kim, B., Viégas, F., & Wattenberg, M. (2017). Smoothgrad: removing noise by adding noise. arXiv preprint arXiv:1706.03825.

[9] Petsiuk, V., Das, A., & Saenko, K. (2018). Rise: Randomized input sampling for explanation of black-box models. arXiv preprint arXiv:1806.07421.

[10] Fong, R., Patrick, M., & Vedaldi, A. (2019). Understanding deep networks via extremal perturbations and smooth masks. In Proceedings of the IEEE/CVF international conference on computer vision (pp. 2950-2958).

[11] Rebuffi, S. A., Fong, R., Ji, X., & Vedaldi, A. (2020). There and back again: Revisiting backpropagation saliency methods. In Proceedings of the IEEE/CVF Conference on Computer Vision and Pattern Recognition (pp. 8839-8848).