Advertisement

Learning Deep Features for Discriminative Localization笔记

阅读量:

1. 背景

卷积神经网络中的每个卷积核本质上都类似于一个object detector,在执行时本身就具有识别物体的能力。然而,在经过全连接层进行分类任务时,这种定位能力就被忽略了。因此,在设计全卷积网络时(例如GoogleNet),通常会放弃使用全连接层,并转而采用全局平均池化操作(global average pooling)。这样做不仅可以有效减少模型参数量并防止过拟合问题的出现,还能更直接地建立特征图与类别之间的关联

2. 思路

global average pooling(gap)不仅仅作为一个regularizer的功能,它还能持续地维持着对特征位置信息的能力直到网络的最后一层。即使该网络被设计用于进行分类任务,我们也可以通过分析feature map来提取出对分类任务具有判别意义的关键区域。举个例子,在一张被分类为自行车的照片中,feature map中的车轮区域和车把手位置通常会显示出较高的激活值。此外,这种end-to-end的设计使得我们在进行分类任务训练时就能同时获得目标定位的信息

3. class activation map(CAM)

该研究者移除上述模型(VGG、GoogleNet、AlexNet)的最后一部分结构,并在此基础上引入了一个3×3尺寸的小卷积模块(stride=1, padding=1)。紧接着采用了平均池化操作(尺寸为14×14)。接着配置了一个softmax激活函数以完成分类任务。随后对该预处理网络进行了微调训练直至收敛稳定后完成模型训练过程。待模型收敛稳定后每一步骤中将各卷积特征图与对应的类别权重相乘并对其结果进行加权融合从而生成了类别热映射图最终构建了类激活图(class activation map)。

比如有人试图预测澳大利亚犬的相关参数组{w₁, w₂, …, wₙ}。通过加权作用于前面最后一个卷积层的所有特征图{f₁, f₂, …, fₙ}就可以生成该品种动物(如澳大利亚犬)的类激活图(Class Activation Map, CAM)。在这一类激活图中显示较高激活值的位置很可能表示该位置很可能属于这种动物。为了定位图像中的关键部位或目标区域其结果即代表该图像对应该动物的概率。为了识别图像中的特定物体我们去找CAM上的热区也就是在这些高权重区域上进行进一步分析和识别工作这样就可以实现对特定物体的有效定位和分类。

这张截取自top-5预测类别的CAM图展示了各个分类对象的独特特征区域分布情况。观察到针对各个分类对象而言,在生成 CAM 的过程中网络能够识别出每个分类对应的特征区域,并且这些区域通常具有明确的区分性和信息含量。例如,在palace类别中发现更多的特征集中于正面围墙上部的位置;而dome类型的物体则主要集中在顶部圆顶的位置上。同样地,在狗和鸡的分类中热区更多地集中在他们的头部附近;而对于杠铃这一类别来说其主要特征则分布在两侧明显的铁块位置附近

4. 实验

为了评估Class Activation Map(CAM)的定位精度, 研究者设计并执行了一系列实验. 其中关键步骤包括将AlexNet、VggNet、GoogleNet等经典网络在最后一卷积层后的全连接层替换为全局平均池化(GAP)。

实验一共分为3类进行比较:

首先作者验证了这种修改不会明显损害网络的 分类性能

通过比较各个网络的表现可以看出,在GAP组中分类错误率有所降低(约为1%至2%,程度有限)。

然后作者验证了CAM具有不错的 定位能力(Table 2)和比较GAP和GMP的性能

**

**

为了实现定位目标并利用CAM技术,在CAM中选取最大值占比达到20%的部分作为阈值完成 CAM 的分割操作;随后提取外接框最大的连通组件作为预测框。在表 2 的结果展示中可以看出,在作者提出的方法与基于 backpropagation 的方法进行对比实验时结果显示前者表现更为优异;此外,在与全监督学习方法进行比较时发现,在弱监督学习框架下作者所提出的最佳性能指标与全监督学习中 AlexNet 的性能表现具有较高的接近度;其中 bounding box 的选择采用了启发式方法具体而言就是对于分类概率排名前两位的类别分别选取一个紧致框和松散框而对于排名第三位的类别则仅选取一个松散框总共五个候选框供后续处理使用

上一行展示了场景图片及其最常出现的对象及其频率。下方一行则展示了这些场景对应的CAM及其热区分布情况。可以看出,在餐厅环境中 CAM 在桌椅、吊灯及餐盘区域表现出较高的激活值,在浴室环境中 CAM 在浴缸及淋浴头区域显示出较高的激活值。

5. 一般网络没有定位能力原因

卷积神经网络(CNN)中各个层级的卷积单元本质上相当于物体检测器;然而,在完全连接的图层用于分类时,“虽然在卷积图层中具有良好的定位能力”,却无法保持这种定位功能。

6. 使用GAP原因

由于在计算映射的平均值时, 可以通过分析对象的所有特征部分来提升该指标, 因为低激活水平会降低特定映射的结果。另一方面, 在GMP中, 除了具有判别性的图像区域之外, 其他图像区域的低分不会影响整体分数, 因为主要关注的是最高得分。

7. 总结

神经网络里面不同层的卷积单元都扮演者视觉特征检测器的角色,从底层的视觉特征,比如边缘,角点;到高层的视觉模型,比如物体或者是场景。最后把这些东西综合起来进行分类。我们可以把最后一个卷积层看成是一个词典。每一张feature map对应检测输入中的一个单词,如果有,就在对应位置有高的激活值。后面的fc层其实就是利用这个词典进行分类。比如对于自行车分类器,他对于车轮,车把,车座这三个单词会赋予高的权值,对其他的单词权值很低,那么当他检测到输入图片的词向量在车轮,车把,车座这三个单词的置信度很高的时候,就会把这张图判断成自行车。

在本研究中,我们开发了一种名为类激活映射(CAM)的通用技术,特别针对基于全局平均池化(GAP)的卷积神经网络(CNN)设计.该方法通过将CAM应用于具有全局平均池化的CNN结构,能够帮助我们在任意输入图像中清晰展示预测的概率分布情况.同时,CAM还能够有效地高亮那些由模型识别出的关键特征区域.

全部评论 (0)

还没有任何评论哟~