论文笔记: Learning Deep Features for Discriminative Localization

1. 概要

是2016年CVPR上的一篇文章。对后来的弱监督学习的研究有很大的启发。这篇文章非常简单,主要是通过一系列的实验,证明了两个结论:1)CNN提取的feature含有位置信息,尽管我们在训练的时候并没有标记位置信息;2)这些位置信息,可以转移到其他的认知任务当中。

如下图所示,这是两张来自Stanford Action40的图片,用来分类不同的动作类别。作者对CNN提取的feature做Class Activation Mapping处理,可以识别出对识别刷牙类别和砍树类别 重要的区域。



2. Class Activation Mapping

CAM主要是通过GAP(Global Average Pooling)来实现。GAP不是由本文提出,但之前GAP主要是用来regularizing training。本文的贡献在于用GAP来定位物体的位置。在讲解CAM之前,我们首先来了解下GAP在整个网络的位置,然后探讨CAM。

一般来说,GAP在最后一个卷积层后面,在GAP之后通常是softmax层。假设f_{k}(x,y) 表示第k个特征图上(x,y)位置的值。运用GAP,可以得到结果F_k = \sum_{x,y}^{}{f_k(x,y)} , 那么对于某个类别c,softmax的输入值为s_{c} = \sum_{k}^{}{}w_{k}^{c}F_{k} , 最后类别c的值为P_{c} = \frac{exp(s_{c} )}{\sum_{c}^{}{}exp(s_{c}) } .

下面来重点讲解怎么通过GAP,来生成CAM(CAM有时候指Class Activation Mapping这个过程,有时候指生成的结果Class Activation Map,这里指后者)。通过上面的公式,我们可以将s_{c} 展开,如下所示:


我们定义属于某个类别c的CAM为


从上式可以看出,M_{c}(x,y) 表示的是不同的激活unit(特征图)对识别某个类别c的权重和。具体如下图所示。 最后将生成的M_{c}(x,y) 放大到原图的大小,就可以得到对应于某个类别c的CAM了。


3. 实验结果

以AlexNet,VGGnet和GoogLeNet的主要的网络架构,分别在后面加入一个卷积层,GAP和softmax层,生成三种网络,AlexNet-GAP, VGGnet-GAP, GoogLeNet-GAP。

3.1 分类

如下图所示,除了AlexNet外,与对应的网络相比,*-GAP的的分类效果只下降了1~2个百分点。 由于Alex分类准确率下降较多,所以构建了Alex*-GAP网络,即在原AlexNet加入两个卷积层,而不是一个。现在Alex*-GAP和原来的AlexNet的分类准确度差不多了。

3.2 Localization

结果如下所示, GoogLeNet-GAP的准确率和全监督的AlexNet的准确度差不多(37.1 V.S. 34.2 ),但是和对应的网络相比,差距还是很大。所以说,在weakly supervised的路上,还有一段很长的路要走。


3.3 Generic Localization

这一系列实验在其他数据集上训练linear SVM,而特征都是使用前面*-GAP网络GAP的输出结果。结果如下所示,可以看出,普通GoogLeNet特征提取能力和GoogLeNet-GAP的 特征提取能力差不多。这说明*-GAP并没有降低特征提取能力,当然也没有提高。


下面来看看它的Localization能力,部分实验结果如下所示。可以看出,虽然没有用这些数据集训练,但是它还是能够定位图中物体的突出特征区域。


3.4 Fine-grained Recognition

这个实验用来识别200不同种类的鸟,共做了三种实验,一种是没有使用bounding box, 一种是使用了*-GAP生成的bounding box,一种使用了bounding box标记。结果如下所示。可以看出,使用了*-GAP生成bounding box(第二种情况),可以很明显提高分类准确率。说明生成的bounding box能够包括重要的位置信息。

生成的bounding box的一些实验结果如下:


3.5 Pattern Discovery

下面的实验来探究CAM能不能定位更高层次的概念,比如文字。文章做了四种类别的实验,分别为:1. Discovering informative objects in the scenes; 2)Concept localization in weakly labeled images; 3)Weakly supervised text detector; 4)Interpreting visual question answering 。结果都表明,*-GAP可以定位其中重要的区域,即使是更高层次的概念。 实验的结果如下图所示。



3.6 Visual Class-specific Units

最后, 文章还通过Alex*-GAP,来观察不同卷积单元对特征的提取能力。 大概的做法如下: 找出对每个类别贡献最大的卷积单元图,并找出其中激活值最大的区域,最后对应到原图部分。 实验结果如下所示。从这些实验结果可以看出,对于识别某类别来说,特定的卷积单元识别其中相对固定的部分。不同的卷积单元通过识别不同的部分,并在最后将不同的部分组合起来,从而可以识别物体。


4. 总结: 文章通过CAM,可以通过不使用位置标记,来定位要识别物体的位置。这个技术为很多弱监督学习提供了启发。但是这个方法也有一个致命的缺点:它只能找出物体的一些突出特征的区域,比如狗的头部,这样就导致在定位的时候,容易只定位到物体的一部分。这也是弱监督学习方法一个亟待解决的问题。最后,这篇文章的实验部分写得非常好,对比非常全面,值得我们学习。

编辑于 2018-04-11 11:35