CAM[CVPR16]+Grad-CAM[ICCV17]

CAM


paper:Learning Deep Features for Discriminative Localization

本文的出发点是为了神经网络的可解释性,即高亮出神经网络的激活区域。可用于object detection(location)。

CAM framework
给定任意一个网络结构(分类网络)。CAM的做法

  1. 将网络结构的最后一层删去,设删去后得到的是 ( w , h , n ) (w,h,n) (w,h,n)的特征图。
  2. 使用全局平均池化得到 n n n个值,对应图中蓝色,红色…,绿色的节点值
  3. 使用全连接层得到 C C C个输出, C C C为类别个数
  4. 重新训练/fine tune网络至收敛
  5. 指定要激活的类别 X X X。将FC层的权重, K K KX C C C大小的矩阵中的第 X X X列(设值为 w 1 , w 2 . . . w n w_1,w_2...w_n w1,w2...wn),直接与特征图进行点乘后相加,相加后得到一张对应类别的 X X X的特征层激活图,将其双线性插值回原图大小,设置阈值得到对应类别在原图中的位置(激活的高亮区域)。

Grad-CAM


paper:Grad-CAM:Visual Explanations from Deep Networks via Gradient-based Localization Ramprasaath

先验知识:

paper :STRIVING FOR SIMPLICITY:THE ALL CONVOLUTIONAL NET

卷积逆向推导分类
如上图所示, f i l f_i^{l} fil表示第 l l l层的特征图的位置 i i i的值, f i l + 1 = r e l u ( f i l ) f_{i}^{l+1}=relu(f_{i}^{l}) fil+1=relu(fil) R i l R_{i}^l Ril表示第 l l l层的特征图的位置 i i i的梯度值。 R i l + 1 R_{i}^{l+1} Ril+1同理。
卷积的逆向推导常见的有三种

  • 普通的反向传播,用于调整权重大小,由于激活函数的影响,反向传播只将返回 f i l f_i^l fil值为正数的位置的梯度值。
  • 反卷积,类似于将relu作用于梯度的反向传播,即将 R i l + 1 R_{i}^{l+1} Ril+1值为正数的位置传播。
  • 引导反向传播,可以看作前两者的交集,只有位置 i i i满足 f i l f_i^l fil R i l + 1 R_{i}^{l+1} Ril+1都为正数时才更新梯度值。

对指定的类别 C C C进行引导反向传播至原图(第一层),会发现原图中激活的区域是纹理复杂的区域,但是遗憾的是并不是只有类别 C C C所在的区域得到激活。如下图所示

在这里插入图片描述

对猫或者狗进行引导反向传播,激活的区域都不限于猫或者狗。也就是说,引导反向传播告诉了我们——神经网络在判定图中是否存在猫的时候看了哪些区域(既看了狗的位置又看了猫的位置),但是并没有告诉我们如何进一步筛选过滤。

framework of Grad-CAM

framework of Grad-CAM
Grad-CAM与CAM在功能性上的区别

  • 不需要对网络结构进行更改并且重新训练
  • 不仅限于图像识别任务的可视化,可以用于Caption/Question Answer等任务的可视化
  • 性能相较于CAM有所提升(比如都用于weakly supervised object detection)

Grad-CAM的处理过程

  1. 取模型中的最后的卷积层的特征图(允许后面还有FC,LSTM等结构),设其为 ( w , h , n ) (w,h,n) (w,h,n)。计算对应类别 C C C的梯度,第 n n n张特征图,位置 ( w , h ) (w,h) (w,h)处的梯度值记为 A w , h , n C A_{w,h,n}^C Aw,h,nC。(使用的就是普通的反向传播)
  2. 对于 n n n张特征图的梯度进行全局平均池化,得到 n n n个梯度值,对应图中的 w 1 c w_1^c w1c w 2 c w_2^c w2c,…, w n c w_n^c wnc
  3. 将得到的 w w w与特征图进行对应相乘后相加,融合得到一张Grad-CAM的结果。 ∑ i = 1 n w i ∗ f l \sum_{i=1}^n w_i*f^l i=1nwifl
  4. 对图像进行对应类别的引导反向传播至原图。得到上文说到的类别区分度不高的纹理激活图。
  5. 将Grad-CAM进行双线性插值得到原图大小后,与引导反向传播的结果进行点乘运算,得到最终的Guided Grad-CAM。

Grad-CAM的思路

  1. 使用特征图上梯度的均值作为改特征图的权重 w w w,以此代替CAM中训练得到的权重。
  2. 经过第一步其实实验的效果就与CAM相近了,作者再次基础上在结合了引导反向传播进一步优化了结果。其实也可以仿照此得到Guided CAM。
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值