以GradCAM为例的衍生算法分析

目录

 网络架构

 样例分析

优缺点分析

优点

缺点

 GradCAM++

ScoreCAM

LayerCAM

思考题


 网络架构

        与CAM相比,GradCAM引入了梯度,同时可以用全连接网络进行训练,而不用将FC替代为GAP层。输入image通过CNN提取特征,经过FC Layer后得到某一类的logit,对其求导数,将每个channel的经过GAP处理,即可得到每一个channel对应的权重,再与channel对应相乘再累加,通过ReLU即可得到GradCAM的热力激活图。

        通过反向传播,可以得到输入图像求导后的粗粒图,而如果与由GradCAM产生的细粒图相乘,可得到Guided GradCAM,虽然分辨率上存在一定缺陷,但依然能够反映出class discrimination的效果。同样的道理,在图像分类、图像描述、视觉问答、强化学习等方面也可通过这样的方式分析。

 样例分析

         比较(b)与(h),发现类别分别为猫、狗时相差不大,而结合GradCAM算法之后,从(d)与(j)可以看出class discrimination。此外,进行消融实验,如对图像特定位置进行遮挡时,从(e)与(k)蓝色部分可以看出具体哪些位置对最终识别结果较为敏感。当使用ResNet实现时,从(f)与(l)可以看出,网络越深时,识别范围越大。

        利用这种方式,我们还可以分析神经网络为何会出现识别错误的结果。

         以(a)为例,当Ground truth为volcano时,神经网络预测结果为sandbar,通过提取出Guided GradCAM可以发现,此时神经网络提取的图像特征为前景,而实际上我们希望的识别范围是图片的远景,因此可以通过该方式逐步调整权重,直至得到正确识别结果。

        对一张图片进行解释,使用GradCAM能够使关键物体高亮显示,而对同一张图片进行不同解释时,也能够使对应的关键物体高亮显示,利用高亮部分,可以实现以人为核心的Machine Teaching,具有很高的科研意义和商业价值。 

        俗话说:正难则反,如果我们把GradCAM中梯度的计算过程中取反,则能够得到识别某一类时最不敏感的部分,从(b)能够发现,当图像ground truth为猫时,关于狗的部分则为不敏感部分,同理能应用到(c)中图像ground truth为狗的情况。

优缺点分析

优点

1. 不需要使用GAP层,不需要修改模型结构,不需要重新训练

2. 可对卷积神经网络的中间层进行分析

3. GradCAM是在CAM基础上的进一步推广,具有性能的兼容性和优越性

4. 能够更好地进行细粒度图像分类,识别结果具有class discrimination,同时可以应用到以人为核心的Machine Teaching中

缺点

        例如,当分析深层网络的底层部分对识别结果的关注度时,可以发现识别界限是模糊的。 同样如果分析浅层网络的底层部分对识别结果的关注度时,发现识别界限也是模糊的。以此,引出GradCAM的缺点。

 GradCAM++

        现实中,一张图片可能存在同一类的多个物体,对于GradCAM而言,此时只能绘制出一块热力图,而GradCAM++由于权重系数并非通过平均得到,因此能够关注到同一类的所有物体。

        比较GradCAM与GradCAM++可以发现,GradCAM在一个channel上每个像素点的权重系数是通过平均后得到,即大小都是相同的,这意味着feature map上的关注度一致,而GradCAM++的权重系数引入\alpha_{ij}^{kc}(是一个关于二次偏导,三次偏导的系数),则能够解决该问题。 

ScoreCAM

        ScoreCAM总共包含两个CNN网络,一路通过CNN后进行上采样,得到的结果与原图像进行相乘,然后通过CNN,通过FC Layer后最终再与上采样结果线性结合,则能够解决GradCAM中只进行BP而不进行前向预测的问题。

LayerCAM

         在GradCAM中,由于深层网络的细粒度图像分辨率低,浅层网络的粗粒度图像不能反映class discrimination,从而引出LayerCAM,该算法在不论深层网络还是浅层网络时,既能够满足高分辨率的同时,也能够实现class discrimination。

        比较分析(a)—(e),自然能够发现LayerCAM呈现的优势。

思考题

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值