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

参考文献


1.CAM

1.1作用

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

CAM,PradCAM,layer CAM(可解释性分析方法)_第1张图片

1.2应用实例

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

CAM,PradCAM,layer CAM(可解释性分析方法)_第2张图片CAM,PradCAM,layer CAM(可解释性分析方法)_第3张图片

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,PradCAM,layer CAM(可解释性分析方法)_第4张图片

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

1.5CAM的缺点

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

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

      3.仅限图像分类任务

2.GradCAM

2.1和GAM的区别及思路

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

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

CAM,PradCAM,layer CAM(可解释性分析方法)_第5张图片

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

2.2应用面

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

CAM,PradCAM,layer CAM(可解释性分析方法)_第6张图片

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

CAM,PradCAM,layer CAM(可解释性分析方法)_第7张图片

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

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

2.4缺点

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

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

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

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

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

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

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

CAM,PradCAM,layer CAM(可解释性分析方法)_第8张图片

3.Grad CAM++

解决Grad CAM两个问题

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

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

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

CAM,PradCAM,layer CAM(可解释性分析方法)_第9张图片

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

CAM,PradCAM,layer CAM(可解释性分析方法)_第10张图片

4.Score CAM

解决Grad CAM三个问题

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

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

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

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

CAM,PradCAM,layer CAM(可解释性分析方法)_第11张图片

思路

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

CAM,PradCAM,layer CAM(可解释性分析方法)_第12张图片

5.layer CAM

解决Grad CAM2个问题

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

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

应用:工业检测很合适。

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

CAM,PradCAM,layer CAM(可解释性分析方法)_第13张图片CAM,PradCAM,layer CAM(可解释性分析方法)_第14张图片

 补充

CAM,PradCAM,layer CAM(可解释性分析方法)_第15张图片

参考文献

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

你可能感兴趣的:(人工智能)