(NIN网络)Network in Network论文阅读笔记

Network in Network论文阅读笔记2014

Abstract

我们提出了一种新的深度网络结构,叫做“Network in Network(NIN)”来增强模型对感受野内部local patches的辨别力。传统的卷积层使用线性滤波器,然后使用非线性**函数来扫描输入。**而我们使用更复杂的结构建立了一个micro神经网络来在感受野之中对数据进行抽象。**我们使用多层感知机MLP来实现这个微型神经网络,MLP是一种很好的函数近似器。==我们通过在输入上以与CNN近似的方式,使用微型神经网络进行滑窗,得到特征图,然后特征图输出到下一层。==深层的NIN网络可以靠堆叠小网络实现。通过微型神经网络增强了局部模型,我们可以在分类层,对特征图使用全局平均池化(global average pooling),与传统的FC层相比,它更易于解释且不易过拟合。我们使用NIN在CIFAR-10和CIFAR-100上得到当今最好水平,在SVHM和MINST得到了较好的表现。

1.Introduction

CNN包括一系列卷积层和池化层,卷积层将卷积核与卷积核的感受野范围内的输入做内积,然后接一个非线性**函数,输出结果叫做特征图。

CNN中的卷积核对于它包含的data来说是一种广义线性模型(Generalized linear model,GLM),我们认为GLM的抽象等级比较低。**所谓抽象,我们的意思是该特征对于相同概念的变体是不变的。**使用一个更有力的非线性函数近似器替换GLM可以提升模型的抽象能力。**当要学习的潜在concepts是线性可分得时候,GLM可以取得很好的抽象效果,也就是说,不同的概念可以由GLM定义的平面分开。**因此,传统的CNN简单的就假设这些潜在概念是线性可分得。然而,实际情况下,同种概念的数据也可能以一种非线性流形存在,因此可以表示这些概念的representations通常都是输入的高度非线性函数。在NIN中,我们使用一个“micro network”替代GLM,这个微小网络是一个普通的非线性函数近似器(approximator)。我们选择MLP作为微小网络的实例,它是一个通用函数逼近器和也是一个可通过反向传播训练的神经网络。

在图1中,我们比较了我们的结构mlpconv以及CNN,这两种结构都是把感受野内输入输出成特征向量。==mlpconv把输入的局部块,通过一个MPL(有多个带非线性**函数的FC层),映射成输出特征向量。这个MLP在所有的局部感受野中是共享的,通过使用MLP进行滑窗(与CNN类似)来得到特征图,然后传入下一层。==多个mlpconvs堆叠起来就是我们的网络结构NIN。(NIN网络)Network in Network论文阅读笔记

与传统的CNN使用FC层用作分类不同,我们直接将最后一个mlpconv层在空间上的输出通过一个全局平均池化层,把这个特征图的空间平均输出作为分类的信度,把这个输出向量送到softmax层。在传统的CNN中,由于FC层之间类似黑盒,因此很难解释来自目标层的类别级别的信息如何传递回先前的卷积层。相反,全局平均池化层更加有意义、可解释,因为增强了特征图与类别之间的联系,这是通过使用了micro network的更强的局部模型实现的。另外,FC层更易于过拟合,十分依赖dropout正则化,然而全局平均池化自己就是一个结构上的正则器,它可以防止总体结构的过拟合。

2.Concolutional Neural Networks

经典的CNN网络由多个堆叠的卷积层和空间池化层组成,通过线性的卷积核+非线性**函数(ReLU、sigmoid、tanh等)生成特征图。使用ReLU为例子,特征图由下面式子计算:
fi,j,k=max(wkTxi,j,0) f_{i,j,k}=max(w_k^Tx_{i,j},0)
这里面(i,j)(i,j)是特征图中的像素坐标,xi,jx_{i,j}表示中心在(i,j)(i,j)的输入patch,k是特征图的通道下标。

这种模型对线性可分的concepts是有效的,但是大多数情况下,好的representations都是非线性得到的,传统CNN中,要解决这个问题,**通常使用足够多的filter以满足所有的latent concept,也就是说,这些filter可能用来检测同一种concept的不同变化形式。**然而,对于一个concept使用过多的filters会对下一层增加额外的负担,因为下一层需要考虑上一层所有变化的组合。在CNN中,较高层的filters映射对应的是原始输入较大区域,通过组合来自低层的低级concepts组合,生成高级的concept。因此,我们认为,在输入到下一层之前,对每个局部patch进行更好的抽象,是有益的。

**在最近的maxout网络中,通过对仿射特征图进行最大池化来减少特征图的数量(仿射特征图是未经过**函数的卷积结果)。**对线性函数最大化可以得到分段线性逼近器,它能够逼近任何凸函数。与传统卷积层相比(线性分离),maxout网络更有力,因为它可以将凸集内的不同概念分离,这使得maxout网络在几个数据集上取得了很好效果。

然而,maxout的前提是,concept位于输入空间的凸集中,这个条件不一定满足。因此,当可能的concepts分布更加复杂时,使用一个更普遍的函数近似器就很有必要。我们就此提出了NIN网络,在每个卷积层使用micro network来对局部patch计算更抽象的特征。

在输入上使用micro network进行滑窗在之前的一些工作中已经被提出,但是它们只是针对特定任务,而且只包括一个sliding network结构。NIN以一个更普遍的角度提出,将微型网络整合到CNN结构中,以在所有的特征层都得到更好的抽象能力。

3.Network In Network

3.1MLP Convolution Layers

在没有提前给出潜在concepts的分布情况下,使用一个通用的函数近似器用来对局部块进行特征提取是很重要的,因为它可以对潜在concepts近似到更抽象的表示。径向基网络(Radial basis network)以及MLP是两种常见的通用函数近似器。我们选择MLP的原因有两个,一是MPL与CNN的结构相匹配,都是使用反向传播进行训练;二是MLP自己就可以组成深度网络,这与CNN的特征一层一层深入是相一致的。我们把这个网络叫做mplconv,使用MLP取代了GLM来计算输出。图1解释了mlpconv与传统卷积的不同。mlpconv层的计算由下面给出:
fi,j,k11=max(wk11Txi,j+bk1,0)...fi,j,knn=max(wknnTfi,jn1+bkn,0) f_{i,j,k_1}^1=max(w_{k_1}^{1^T}x_{i,j}+b_{k_1},0)\\ \\ ...\\ \\ f_{i,j,k_n}^n=max(w_{k_n}^{n^T}f_{i,j}^{n-1}+b_{k_n},0)
n是MLP中的层数,使用ReLU作为**函数。

从跨通道(跨feature map)池化角度来看,上面的式子等价于对普通卷积层进行级联跨通道参数pooling,每个池化层对输入特征图执行加权线性重组,然后通过ReLU。这种跨通道的特征图再下一层mlpconv中又重复这个过程,这种结构使得不同channel之间的信息可以进行复杂、可以学习的交流。

同样,这种结构也类似于1 * 1的卷积层,这种解释可以更直观的理解NIN的结构。(NIN网络)Network in Network论文阅读笔记

与maxout层的对比:maxout层在多个仿射特征图之间进行最大池化,maxout层输出的特征图计算公式如下:(NIN网络)Network in Network论文阅读笔记

即对未经**的卷积结果,使用m个神经元,每个神经元对仿射卷积每个位置都有一个权重,输出一个值。取m个神经元输出最大的值。

maxout生成了一个可以model任意凸函数的分段线性函数。对于凸函数,函数的samples在凸集中的一个特定的阈值内取值。因此,通过对local patch进行凸函数近似,maxout有能力对潜在concepts可通过凸集可分的情况生成分类超平面。mlpconv层使用通用函数近似器,比maxout能力更强。

3.2Global Average Pooling

传统的CNN在低层使用卷积层,对分类,将卷积层最后的输出打平送入FC层,再送到softmax中。这种结构将卷积层当作特征提取器,提取到的特征以传统方式使用FC层分类。

然而,FC层易于过拟合,阻碍了整个网络的能力。Dropout是一种正则化的方法,提升了网络的泛化能力,防止了过拟合。

在本文中,我们提出一个叫做全局平均池化的策略来取代传统CNN中的FC层。**方法是在最后一个mlpconv层,对于分类任务的每一个相关类生成一个特征图。我们直接对每个特征图取平均,然后把得到的结果转化成向量,送到softmax层中。**全局平均池化的一个好处就是,相对于FC层,它对于卷及结构更加native,加强了特征图与类别之间的联系。因此特征图可以简单认为是类信度图(categories confidence maps)。另一个优点是,全局平均池化没有参数需要学习,因此这层避免了过拟合。另外,全局平均池化综合了空间的信息,因此它对输入图像的空间平移等变化鲁棒。

我们可以把全局平均池化当做一个结构的正则化器,使得特征图变为concepts(categories)的confidence maps。因为使用了mlpconv层,使用全局平均池化的效果很好。

3.3Network In Network Structure

NIN的总体结构是一系列mlpconv的堆叠,最上面是全局平均池化层,以及objective cost层。在mlpconv之间可以加入下采样层。图2展示了一个有3个mlpconv的NIN网络结构,在每个mlpconv层内,是一个3层的感知机。这些层数是针对特定任务可以调整的。(NIN网络)Network in Network论文阅读笔记

4.Experiments

4.1Overview

我们在四个数据集(CIFAR-10、CIFAR-100、SVHN、MNIST)上评价我们的NIN网络,使用的网络由3个mlpconv组成,所有mlpconv后使用最大池化size减半。除了最后一个mlpconv,其他的mlpconv使用了dropout正则化,没有特殊声明情况下,都是用全局平均池化代替FC层。同样使用了权值衰减作为正则化手段,图2中的网络即为测试网络。参数的详细设置在补充材料中提供。

我们采用与AlexNet一样的训练流程。batchsize = 128,准确率不再提升,学习率除以10,最多两次。

4.2CIFAR-10

CIFAR-10数据集包含10类图像,共50000张训练集,10000测试集。每张图像是32 * 32的RGB图像,我们使用最后10000张训练图像作为验证集。(NIN网络)Network in Network论文阅读笔记

如图3所示,我们在mlpconv之间使用dropout提升了网络的表现,使得测试错误率下降了超过20%。我们使用了平移和水平翻转进行数据增强。(NIN网络)Network in Network论文阅读笔记

4.3CIFAR-100

CIFAR-100数据集与CIFAR-10数据集的图像尺寸格式一致,但是有100类,我们的模型与CIFAR-10时相同,唯一不同是最后一层mlpconv输出有100个特征图。(NIN网络)Network in Network论文阅读笔记

4.4Street View House Numbers

SVHM数据集有630420个32 * 32的彩色图像组成,分为训练集测试集和额外集。任务的目标是分辨出图像*的数字。我们使用的结构与上面一样,使用了全局平均池化。(NIN网络)Network in Network论文阅读笔记

4.5MINST

MINST数据集的图像为28 * 28单通道的的手写数字图像,共有60000训练图像和10000测试图像。使用与CIFAR-10类似的结构,但是每个MLP生成的特征图数量变少了,因为这个任务更简单,需要的参数少,我们没有进行数据增强进行了测试。也取得了很好的效果。(NIN网络)Network in Network论文阅读笔记

4.6Global Average Pooling as a Regularizer

我们在CIFAR-10数据集上进行测试,对比了全局池化与FC层的效果。(NIN网络)Network in Network论文阅读笔记

可以看到,没有dropout的FC层效果最差,这是因为过拟合了。使用全局平均池化的模型效果最好。

之后我们探究全局平均池化对于传统的CNN是否也有一样的正则化效果。我们设计了一个传统的CNN网络:包含三个卷积层和一个局部连接层,局部连接层生成16个特征图然后送入带有dropout的FC层。为了保持公平,我们把16减小到10,因为在全局平均池化层中,只生成类别个数的特征图(CIFAR-10,10个)。我们使用全局平均池化层替换这个FC层作为对比,然后在CIFAR-10上进行测试。

带有FC的模型最好成绩是17.5%错误率,加入dropout之后得到最好表现是15.99%。使用全局平均池化层的模型成绩是16.46%,比没有dropout的CNN提升了大约1%,这就证明了全局平均池化层是一种有效的正则化方式,尽管比dropout差一点。

4.7Visualization of NIN

我们通过mlpconv层增强了特征图,但是效果是如何呢?我们直接提取了在CIFAR-10上训练的网络的最后一个mlpconv的输出并将其可视化。(NIN网络)Network in Network论文阅读笔记

图4展示了一些示例图像以及它们与每一类对应特征图。可以看到,有最大**值的图为ground truth类别对应的特征图,这是被全局平均池化加强。在ground truth类别对应的特征图上我们可以看到,最强的**值出现在与目标在原有图像的对应位置上。如果训练数据不止包括类别,还包括bbox的话,效果会更好。

这个可视化更加验证了NIN的有效,通过更强的局部感受野模型来实现更好的效果,全局平均池化又增强了类的特征图。之后这些可以用在目标检测任务中。

5.Conclusions

我们针对分类任务提出了一个新的深度网络NIN。这种新网络包括mlpconv层(使用MLP来进行卷积)以及全局平均池化层(取代FC层)。mlpconv层对局部块特征提取更好,全局平均池化可以作为正则化器来防止全局的过拟合。我们使用这种结构在几种数据集上取得了目前最好的效果。通过特征图的可视化,我们验证了最后一层mlpconv输出的特征图是类别的信度图,同时也提升了使用NIN进行目标检测的可能性。