本文作者学习的内容来自B站UP主子豪大佬,图片来源于子豪大佬的视频
相关的视频地址如下:CAM可解释性分析-算法讲解_哔哩哔哩_bilibili
一.CAM介绍
CAM热力图可视化方法是一种常用于探索卷积神经网络的技术,通过CAM热力图可视化技术我们可以对深度学习进行可解释探索,前面我们提到了深度学习网络是一个黑箱子,我们如果需要应用和改进的话,需要学习他的原理和探索他的缺陷,从而完成相关的idea。
二.CAM的可解释性分析
CAM热力图的可视化分析主要原理如下:
CAM首先进行特征提取,但是CAM并没有使用池化层,池化层在深度学习模型中主要用于下采样,会导致提取到的特征缺少,而CAM他是要探索算法检测图像的时候的关注点,比如算法检测一只猫,而CAM探索的时候,它主要探索猫,对猫进行热力图显示,热力图成像主要集中于猫出现的像素位置。
CAM相关的网络结构如下:
CAM的热力图算法很惊人,图文中GAP主要是未来防止梯度爆炸,得到全局平均化GAP,而softamax的计算来自于前面的通道计算得到,不同的颜色线性点来自于相对应的颜色的通道矩阵,使用1000个矩阵*1000个通道得到对应的热力图。
GAP:全局平均池化,得到的特征相对于最大池化层降低了最大池化层的损失。
观察上图,你会发现,目标分类器为什么可以识别到狗,通过CAM热力图算法,会发现目标分类器所感兴趣的点和所关注的特征点,从而完成相对应的识别,通过学习,是不是可以为我们打开我们研究的计算机视觉领域的黑盒子和探索到算法的不足点。
三.基于CAM算法的应用
CAM具有以下优点:
- 对深度学习实现可解释性分析、显著性分析
- 可扩展性强,后续衍生出了各种基于CAM的算法
- 每张图片、每个类别,都可以生成CAM热力图
- 弱监督分类:可帮助图像分类模型解决定位问题
- 潜在的注意力机制的探索
- 使得Machine Teaching成为可能
那么我们可以使用它做什么呢?
首先,是不是可以进行算法的缺陷探索,比如使用它探索SSD、RCNN等算法的缺陷问题。
其次,是不是可以针对注意力机制进行探索,比如RCNN我们使用一种注意力机制,但我们可以做一个消融实验,我们再使用另一种注意力机制,然后我们对比实验,同时同时进行CAM热力图可视化分析得出关键的问题。
第三,分析每张图片或者一些检测效果不好的类别,进行CAM热力图可视化分析,对比目标分类器所关注的或者识别的关键特征,尝试使用相关类别进行优化。
还有很多的应用,你可以把她当做你的前沿工作的工具,找不到创新点,那我们就来使用它进行实验,好不好?