天天看点

CNN 可视化算法 CAM1.概述2.CAM3.实验效果4.参考文献

作者:NLP与人工智能

本文介绍了2016年提出的CAM激活映射算法,该算法用于可视化卷积神经网络的特征,并将不同区域的重要性映射到原始图像。CAM 使用全局平均池化和最后一层 softmax 的参数对特征图进行线性加权,以获得模型不同类别的焦点区域。

<h1类"pgc-h-arrow-right-"数据轨道""3">1. 概述</h1>

CNN 可视化算法 CAM1.概述2.CAM3.实验效果4.参考文献

凸轮算法效果

CAM算法在论文"学习深度特征以进行好奇的定位"中提出,作者发现,虽然CNN网络在训练过程中可能没有提供物体的位置,但它仍然具有很强的定位特征的能力,如上图所示。上图显示了CAM操作的效果,可以看到对于刷牙,CNN可以有效地定位牙刷,而对于锯树,CNN可以有效地定位电锯。

但CNN通常后面跟着一个完整的连接层,作者认为这会影响CNN的定位能力。因此,提出一种CAM算法,将全连接层替换为全局平均池化GAP,从而保持模型的定位特征能力。全局平均池化 GAP 通常充当正则化以防止训练期间的过度拟合,下图显示了 GAP 与其他池化方法之间的区别,其中全局池化方法将池化的范围扩展到整个特征图的维度。

CNN 可视化算法 CAM1.概述2.CAM3.实验效果4.参考文献

各种池化方法

作者还在ILSVRC数据集上测试了凸轮瞄准能力,使用弱监督目标定位训练,前5名错误率为37.1%,而使用完全监督目标训练的AlexNet的前5名错误率为34.2%。

弱监督目标定位训练与全监督目标定位训练的区别如下图所示,即当弱监督时,仅图片类别没有目标框架,而完全监督的图片具有目标框架。

CNN 可视化算法 CAM1.概述2.CAM3.实验效果4.参考文献

弱监督目标定位培训

<h1 class="pgc-h-arrow-right" data-track="11">2.CAM</h1>

CNN 可视化算法 CAM1.概述2.CAM3.实验效果4.参考文献

凸轮模型图

上图是 CAM 的模型图,后跟间隙,然后使用 Softmax 层进行分类。图中最后一个卷积层的通道数为n,因此GAP之后的矢量维数为n,对应于每个通道。图中的 W1, ..., wn 是指 Softmax 层的重量,它对应于一个类类的权重(图中的类是 TerrEr Australian 或 Australian Terrier)。

最后一个卷积层的特征图输出包含 n 个通道,这些通道的权重将特征图的 n 个通道与该类的权重相加,然后映射到原始图片以获得不同区域的重要性。此处,由于特征图与原始图形大小不同,cam 直接使用调整大小将特征图缩放到与原始大小相同的大小。接下来,我们将介绍 CAM 的一些公式。

对于图像,您可以使用以下公式计算类别 c 的分数,其中 k 表示最后一个卷积图层的通道,xy 表示特征图的坐标,f 表示特征图,w 表示 Softmax 的权重:

CNN 可视化算法 CAM1.概述2.CAM3.实验效果4.参考文献

凸轮图片属于c类的评分公式

对于c类,我们可以得到一张图中每个区域的重要性图,公式如下,即特征图加权和得到:

CNN 可视化算法 CAM1.概述2.CAM3.实验效果4.参考文献

CAM 图片重要性地图公式

以下是凸轮可视化,可以更清晰地定位到图像中更相关的位置。

CNN 可视化算法 CAM1.概述2.CAM3.实验效果4.参考文献

凸轮可视化

同时,对于不同类别的类生成热尝试,CAM是不同的,如下所示,对于类别圆顶(dome),热量尝试集中在建筑物的顶部。

CNN 可视化算法 CAM1.概述2.CAM3.实验效果4.参考文献

CAM 对不同类别可视化的影响

<>3的实验效果</h1>

笔者首先验证了CAM算法的分类效果,如下表所示,其中GAP是指使用全局平均池而不是完全连接(即CAM算法),而GMP是指使用全局最大池化而不是完全连接。您可以看到,模型的错误率随着 CAM 的增加而增加,其中 AlexNet 最为严重。

CNN 可视化算法 CAM1.概述2.CAM3.实验效果4.参考文献

CAM算法的分类效果

笔者随后验证了CAM算法在弱监督目标任务中的效果,结果如下表所示,弱是指使用弱监督训练,而完全是指使用全监督训练,可以看出CAM具有良好的效果,而完全监督训练AlexNet效果类似。

CNN 可视化算法 CAM1.概述2.CAM3.实验效果4.参考文献

CAM算法的定位效果

< h1 类""pgc-h-right-arrow" data-track""28" > 4</h1>

学习用于区分性本地化的深度功能