Some Words: 这里主要是我阅读paper的笔记
这篇文章主要是2016年CVPR的一篇文章,中文名是 学习用于判别性定位的深度特征,
在这篇工作中,我们又重新探讨了全局平均池化层,并且阐释了CNN网络是如何显式的拥有定位的能力,尽管是在图像级的标签上进行的训练。尽管这种方法常用在训练时候进行正则化,但是我们也发现它建立了通用局部的深度表示来应对于各种任务并且也得到了证明;
=》提出 全局平均池化层,它主要有两个功能:(1)很简单的正则化(2)使网络具有定位的能力;在这里主要讲第二种。
一些参考知识:
全局平均池化层(Global Average Pooling Layer)是一种常用于深度学习卷积神经网络(CNN)中的特征提取层。
在传统的卷积神经网络中,通常在最后的卷积层之后使用全连接层来进行分类任务。然而,全连接层具有大量的参数,容易导致过拟合的问题。为了减少参数量和提高网络的泛化能力,全局平均池化层被引入。
全局平均池化层的作用是将整个特征图的空间维度进行池化,输出一个固定长度的向量。具体而言,对于输入的特征图,全局平均池化层会计算每个通道的平均值,然后将这些平均值组合成一个向量作为网络的输出。这样做的效果是将高维的特征图转换为一个低维的向量表示。
全局平均池化层的优点是它减少了参数量,因为它没有可学习的权重参数,只是进行简单的平均计算。同时,它也有正则化的效果,防止过拟合。此外,全局平均池化层的输出是固定长度的,不受输入图像大小的影响,这使得网络对于不同尺寸的输入具有一定的鲁棒性。
在许多深度学习模型中,全局平均池化层通常用于替代全连接层,作为最后一个特征提取层。这样的设计可以减小模型的复杂性,并且在训练和推理阶段都可以提供高效的计算。
Zhou等人最近的工作表明,不同层的卷积神经网络(CNN)的卷积单元实际上表现为对象检测器,即能够卷积单元的定位能力是存在的,但是到了全连接层的时候则会消失;因此,最近一些全卷积网络也提出,例如the Network in Network(NIN)和GoogLeNet等,能够避免使用全连接网络减少参数同时保持好的表现。
为了解决这个问题,发现了 全局平均池化层,它不仅仅可以正则化使得网络避开过拟合,同时它的加入使得网络改进也能够保留定位的能力直到最后一层;
这个改进能够使得在单个前向传递的过程中更容易地识别判别的图像区域从而应用于各种任务,即使初始网络训练的目的不一致的。
如上图,主要是结合类激活图(CAM)对全局平均池化层进行的修改使得用于分类的CNN能够分类预想和在前向传递中定位特定类图像的区域。例如,牙刷对于刷牙,链锯对于砍树;
同时,我们也证明了这种方法中深度特征的定位能力能够较为容易地迁移到其他的识别数据集上;
目前,我们已经得知,CNN的卷积单元具有定位对象的能力。但是在这篇Paper中,我们主要推广能力,不仅仅是定位对象,而且能够定位用于判别的图像区域。这里,主要介绍两项与此相关的工作:
(1)弱监督对象定位,一些相关的定位工作以及本工作精确定位的贡献点...
(2)可视化CNNs,一些工作是忽略全连接层,另一些虽然可以反转全连接层来显示深层特征,但是并没有显示信息的相对重要性,因而我们的工作即是可以高亮对判别结果的区域,即更重要的信息。
CAM主要的思想:我们首先在卷积层上施加全局平均池化层,之后我们对其输出的特征(获取的深度特征)放置到全连接层中,如果是分类的话有Softmax,期待输出一个不错的结果。鉴于这种简单的连接结构,我们将输出层权值反向投影到卷积特征映射上来识别图像区域的重要性,这种方法称之为CAM,即类激活映射。如下图,推导的公式可见原文,此处省略。
如图3中,即是对于6个类的CAM生成的例子。
Global average pooling (GAP) vs global max pooling(GMP):
GAP和GMP是全局池化的两种常见的操作,从而来减少特征图的空间维度;两者相对而言,GAP 是对每个通道的平均值作为输出,更关注整体的特征;而GMP选择其中的最大值作为输出,更关注显著的特征;
在本节中,我们评估在ILSVRC 2014基准数据集上训练时的定位能力。我们首先描述了实验设置和在其中使用的各种cnn模型。3.2我们验证了我们的技术在学习定位时不会对分类性能产生不利影响,并提供了弱监督对象定位的详细结果。
映射分辨率:即指在卷积神经网络(CNN)中,输入特征图与输出特征图之间的空间分辨率关系。在CNN中,通过卷积和池化等操作,输入特征图逐渐经过多个卷积层和池化层的处理,最终得到输出特征图。在这个过程中,特征图的空间分辨率通常会发生变化,一般是会变低。
我们也发现,当最后一层卷积层的分辨率较高时,对定位表现出更好的能力。因而对网络进行稍微的调整,之后我们都加上卷积层、全连接层和Softmax用于1000类的分类,最后得到相应的-GAP网络。
验证了加入GAP相对保留了模型的分类性能,同时也增强了网络的定位能力...
数据集采用的是由边界注释的,从而能够对我们的定位能力进行一定的评估;
这个实验用来识别200不同种类的鸟,共做了三种实验,一种是没有使用bounding box, 一种是使用了*-GAP生成的bounding box,一种使用了bounding box标记。结果如下所示。可以看出,使用了*-GAP生成bounding box(第二种情况),可以很明显提高分类准确率。说明生成的bounding box能够包括重要的位置信息
这节主要讲该技术应用到4个领域的例子。
使用 AlexNet*-GAP,找到对每个类别贡献最大的激活图,之后找到对应区域并将其对应到原图。
从图中我们可以得知,分类器判别为起居室,检测出了沙发、椅子和电视,因而我们推测CNN学习了很多词语,每个单词都是用于判别特定类的,CNN则是学习这些引导CNN分类每一张照片。
在这个工作里,我们提出一个工作CAM(Class Activation Mapping)结合全局平均池化技术,这促使用于分类的CNN表现分类,不需要任何的边界框注释,类激活图使得再给定一个图像时能够可视化预测类的分数,高亮由CNN检测到的对象判别的部分区域。
我们也在弱监督定位的ILSVRC benchmark上进行了验证,证明了我们应用了全局平均池化的CNN能够有着精准的定位表现。更多的是,也证实了这个CAM精准定位技术也能适用于其他的视觉识别任务,我们的技术也生成了通用的可定位的深层特征,帮助其他研究人员能够理解再其他任务中的识别基础。