Grad-CAM

Grad-CAM是一种用于生成卷积神经网络(CNN)解释性图像的技术,无需对网络进行二次训练。与CAM相比,Grad-CAM计算类激活图时仅使用一次训练,通过反向传播得到权重并加权求和特征图,然后应用ReLU函数,突出对分类有正向影响的特征。该方法适用于分类、定位等多种任务,提供CNN的透明度。
摘要由CSDN通过智能技术生成

Grad-CAM论文解读

Grad-CAM: Visual Explanations from Deep Networks
via Gradient-based Localization
论文地址:https://ieeexplore.ieee.org/document/8237336
代码:keras vgg16_Grad_cam.
pytorch vgg16 vgg16_Grad_cam
resnet resnet_Grad_cam

前言

我们提出了一个新技术用来生成卷积神经网络可解释性的图片,使得CNN变得更加透明,Grad-CAM利用其中某一类的得分进行反向传播,传到最后一个卷积层,可以得粗糙的定位图片。


一、与CAM的区别

CAM需要对分类网络进行二次训练,其主要思想是在训练好的分类网络的基础上,将后面的全连接层替换成GAP(global average pool),保持GAP前面层不变的情况下再训练的GAP的权重,然后利用反向传播计算出CAM图。
Grad-CAM的方法不需要对网络结构修改后再继续训练,只要训练一次,就可以利用Grad-CAM算法得到对应输入图像的类激活图。

二、Grad-CAM

1.Grad-CAM计算公式

计算类c的得分yc关于最后一个卷积块的第k个特征图所有像素的梯度的平均值,作为第k个特征图是c类的权重在这里插入图片描述
CAM中是将得到第k个特侦图是c类的权重与对应的第k个特征图相乘求和,Grad-CAM有个小小的区别在于将权重和特征图进行加权求和之后,只取了结果大于0的那些像素值,因为作者认为只有结果大于0的那些像素才是对神经网络判别为c类有促进作用的特征图。反之,小于0的则是有消极作用。所以,作者在加权求和之后又加了一个ReLU函数这样就可以得到对分类结果有正影响的CAM结果图了。
在这里插入图片描述

2.Grad-CAM与CAM的相互推导

作者认为 :Grad-CAM是可以推导出CAM的,反过来说CAM是Grad-CAM的一个特例。

对于CAM,最终的分类结果yc有:
在这里插入图片描述
其中wck是第二次训练后得到的权重,Akij表示最后一个卷积块的第k个特征图在(i,j)位置处的像素值。令Fk表示第k个特征图的全局平均值:
在这里插入图片描述
那么yc可以简化为:在这里插入图片描述
等式两边同时对Fk求导数,则wck等于yc关于Fk的偏导数,等于分子分母同时对Aijk求偏导:

在这里插入图片描述
也就是:
在这里插入图片描述
上面的公式只是对特征图中(i,j)位置处的像素值求的wck,那么对于整个特征图的求和为
在这里插入图片描述
wck对于所有像素点处的值都是一样的,那么对于左边,相当于wck乘以整个特征图的大小z,等式右边z是常量可以直接提取到求和符号的最外面,在这里插入图片描述

两边同时消去z,有:在这里插入图片描述
而Grad-CAM一开始权重ack就是比wck多乘了一个常量,所以说Grad-CAM之间有着严格的数学推导关系。而且这种关系是成立的。

3Grad-CAM框架结构图

在这里插入图片描述
上面的示意图中还包含了导向反卷积部分。主要是因为作者认为虽然Grad-CAM具有很好的判别性,但是它缺乏想像素空间梯度可视化方法那样突出细粒度细节的能力,所以他又把Grad-CAM与导向反卷积部分融合在一起。

Grad-CAM还是有很多应用的,比如分类、可解释性、定位、弱监督种子点的定位等等,算是实用性很高的一个算法了。

总结

本文简单的介绍了Grad-CAM的主要原理,以及它与CAM之间的数学理论推导,欢迎各位小伙伴一起讨论更多关于CAM的知识!

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值