CAM,PradCAM,layer CAM(可解释性分析方法)

目录

1.CAM

1.1作用

1.2应用实例

1.3CAM的特点

1.4CAM的思路

1.5CAM的缺点

2.GradCAM

2.1和GAM的区别及思路

2.2应用面

2.3一个延深(解决模型偏见)

2.4缺点

3.Grad CAM++

4.Score CAM

5.layer CAM

参考文献


导读

尽管CAM在计算机视觉领域起到了解释性的作用,但同时也要注意到,CAM只能关注模型得到结果依据的特征是什么,它依然不能从根本上解释神经网络在做什么。真正意义上的可解释性分析,应该有一个通用模型,而不是一个计算模型,一个解释模型,因为这两个模型还是不同的,这样的解释模型也无法百分之百保证对计算模型的解释是正确的。

1.CAM

1.1作用

CAM不不光可以分类还可以定位:从下图理解,识别palace时热力图定位了模型认为它是palace的特征,同样对dome等识别时也用热力图定位了相应特征,也就是定位了palace和dome的位置。

1.2应用实例

从热力图可以看出,识别福建土楼依据的特征是洞状结构,识别吊脚楼依据的是棍状结构,识别故宫依据的是沿状结构

1.3CAM的特点

      1.实现了深度学习的可解释性分析

      2.可拓展性强,后续研发出一系列基于CAM的算法

      3.在每张图片,每个类别都能生成CAM热力图

      4.若监督模型:用图像分类模型解决定位问题

      5.潜在的注意力机制:比方说,识别不同的鸟时(属于细粒度分类) ,人类可以根据模型识别鸟的不同种类所依据的特征的热力图,去理解和学习如何对鸟进行分类,这也属于用人工智能理解世界的方式,带人类去认识这个世界。

      6.使得Machine Teaching成为可能:就是,现在模型不仅可以人类一个问题的答案,还可以给出解决这个问题的思路,这不就可以实现真曾意义上的利用人工智能学习嘛

1.4CAM的思路

如下图所示,正常来说对于图像分类问题,最后一层卷积层之后通常链接全连接层,但这里用GAP(全局平均池化)替代了全连接层,具体操作为,假设最后一层为14×14×512,可以理解为该层有512个特征图然后对每个特征图进行平均池化操作,我们得到每一个特征图对应的值(标量,每一个值代表了原来的特征图),最终得到512个值,再乘以512个w(权重)得到每一个类别的得分,再进行softmax操作,得到对应的概率值。这个方法的特点就在于GAP的w值,对某个类别评分越高,说明这512个特征图某一部分占的比重越大,w也就越大,然后这些特征图还包含位置信息,如第Class Activation Mapping下的图所示,w1*(14×14的特征图)+w2*(14×14的特征图)+......w512*(14×14的特征图)中,我们看到w1对应特征图原图中的位置,w2对应特征图原图中的位置,w3对应特征图原图中的位置,从结果看我们得到的类别是狗,w1对应的特征图和狗毫无关系,所以输出时比重很低,在最终的识别图根本看不到这个特征图,而w2和w3对应的特征图包含狗,我们会发现,最终的识别图中有这两张特征图的身影。

注意到没有池化层:因为池化层会丢失长宽信息,这是CAM无法接受的

1.5CAM的缺点

      1.必须要有GAP层,否则无法得到热力图,基于此有了gradCAM

      2.只能分析最后一层卷积输出,无法分析中间层的特征图

      3.仅限图像分类任务

2.GradCAM

2.1和GAM的区别及思路

区别:在CAM中用GAP替代了全连接层,在GradCAM中,保留了全连接层

思路:如下图所示,简单理解全连接层对类别打分之后,再对其求导重新得到输入全连接层之前的卷积层,14×14×512(这个和原来不完全一样,这里面是梯度值,但能表示卷积层原来的特征图),再进行GAP操作。

优势:对CAM,当我们只想进行图像分类任务时,我们只用一个分类模型就行了,但如果我们想进行性可解释性分析,就需要将全连接层改为GAP重新训练。对GradCAM,当我们想进行可解释性分析时,直接载原模型上加入GAP就可以使用了。

2.2应用面

这样就导致GradCAM应用面很广,只要最后一层结果可导,不管是用什么忘了,RNN还是LSTM,不管是图像还是文本任务等,都可以用其解决。在强化学习中,比方说玩超级马里奥,我们就可以知道,模型执行上下左右的某一个操作,是基于什么,是为了金币,躲避伤害还是其他什么原因

 在文字描述生成任务中:就是说根据一张图生成文字描述,如下图所示,使用GradCAM,不仅可以生成文字,还有生成该文字所依赖的特征。

2.3一个延深(解决模型偏见)

做一个可视化分析的延深,可以用于纠正模型偏见:比方说我们通常会认为医生男性多,护士女性多,那么在建立数据集时,我们可能会在图片中,医生男性占比较多,护士女性占比较多,这就可能导致,模型基于男女分别医生还是护士,但这显然是不对的,在黑箱模型中,知道模型有问题,但可能很难找出问题在哪,需要做大量的实验尝试,有了可视化分析,就可以直接找出问题所在,改进模型。

2.4缺点

      1.图像上有多个同类物体时,只能画出一块热力图,比方说图中有三值猫,但只能画出一只猫,

      2.不同位置的梯度,GAP平局之后,影响相同,但一般来讲图片边缘的影响应该小于图像中心。

      3.梯度饱和、梯度消失、梯度噪声

      4.权重大的channel,不一定对类别预测分数贡献大

      5.只考虑从后往前的反向传播梯度,没考虑前向预测的影响

      6.深层生成的粗粒度热力图和浅层生成的细粒度热力图都不够精确

      7.CAM中只能分析最后一层,GradCAM可以分析中间层,但发现在浅层中,分析效果很差,基于这个有了layer CAM

3.Grad CAM++

解决Grad CAM两个问题

      1.图像上有多个同类物体时,只能画出一块热力图,比方说图中有三值猫,但只能画出一只猫,

      2.不同位置的梯度,GAP平局之后,影响相同,但一般来讲图片边缘的影响应该小于图像中心。

对于第一个问题简单理解:从下图看假设intput image输入的图片包含三个猫(分别对应灰色区域),经过卷积之后,这三个区域分别出现在不同的特征图之中,经过Grad CAM处理之后只能激活其中一个猫的特征图,在Grad CAM++中, 可以同时激活三个猫的特征图。

对于第二个问题简单理解:就是对梯度加了权重,来区别不同位置梯度的影响。

4.Score CAM

解决Grad CAM三个问题

      3.梯度饱和、梯度消失、梯度噪声

      4.权重大的channel,不一定对类别预测分数贡献大

      5.只考虑从后往前的反向传播梯度,没考虑前向预测的影响

做个对比:如下图所示,明显Score CAM热力图对应的位置更加聚焦。

思路

 首先用Phase1(第一个网络),经过Upsampling之后得到14×14×256个特征图,将这些特征图和原图input的小狗分别相乘我们会得到,将每个特征图在原图中对应的位置高亮显示,进一步得到每一个特征图对应他权重,最后Phase2输出这些权重和Phase1中对应的每一个特征图相乘得到Score CAM的结果。

5.layer CAM

解决Grad CAM2个问题

      6.深层生成的粗粒度热力图和浅层生成的细粒度热力图都不够精确

      7.CAM中只能分析最后一层,GradCAM可以分析中间层,但发现在浅层中,分析效果很差,基于这个有了layer CAM

应用:工业检测很合适。

做个对比:如下图左所示,第一行为Grad CAM的特征结果,第二行为layer CAM的特征结果,很明显Grad CAM噪声过多。如下图右所示,即使在浅层中也能聚焦较好的特征。

 补充

参考文献

1.类别激活热力图可视化工具介绍

2.【机器学习】请停止做“有可解释性”机器学习(中英文字幕)_哔哩哔哩_bilibili 

  • 1
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
CAM解释方法的课题方向主要是基于梯度/特征的方法。CAM(Class Activation Map)是一种可解释性分析方法,通过全局平均池化(GAP)层,获得指定类别对最后一层卷积层输出的每个特征图Channel权重,进而计算CAM类激活热力图,展示指定类别在原图上重点关注的特征区域。CAM算法能够打破深度学习的黑箱子,让人工智能展示自己的“注意力"和“学到的特征”。CAM解释方法的目标是通过解释深度学习模型的输出,使得机器学习模型的决策过程更加可解释和可信赖。CAM解释方法可以应用于图分类任务(GC)和节点分类任务(NC),并且可以解释节点(N)、边(E)、节点特征(NF)和图游走(Walk)等不同的对象。CAM解释方法是一种基于梯度/特征的方法,它通过计算梯度或特征来解释深度学习模型的输出。CAM解释方法在解释阶段通常将训练好的GNNs作为黑盒处理,并且具有针对图数据的具体设计。\[2\]\[3\] #### 引用[.reference_title] - *1* *3* [图神经网络的解释性综述!](https://blog.csdn.net/qq_33431368/article/details/116452985)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down28v1,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* [[可解释机器学习]Task03:[算法]CAM](https://blog.csdn.net/m0_59286668/article/details/128358318)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down28v1,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值