[论文翻译]NIN:Network In Network




author 作者

Min Lin1,2, Qiang Chen2
, Shuicheng Yan2
1Graduate School for Integrative Sciences and Engineering
2Department of Electronic & Computer Engineering
National University of Singapore, Singapore
{linmin,chenqiang,eleyans}@nus.edu.sg

paper:http://arxiv.org/abs/1312.4400

Abstract 摘要

我们提出了一种新型的深度网络结构,称为“Network In Network”(NIN),它可以增强模型在感受野(receptive field)内对局部区域(local patches)的辨别能力。传统的卷积层使用线性滤波器来扫描输入,后面接一个非线性激活函数。而我们则构建了一些结构稍复杂的微型神经网络来抽象receptive field内的数据。 我们用多层感知器实例化微型神经网络,这是一种有效的函数逼近器。特征图可以通过微型神经网络在输入上滑动得到,类似于CNN;接下来特征图被传入下一层。深度NIN可以通过堆叠上述结构实现。通过微型网络增强局部模型,我们就可以在分类层中利用所有特征图的全局平均池化层(GAP),这样更容易解释且比传统的全连接层更不容易过拟合。我们证明了NIN在CIFAR-10和CIFAR-100上得到了有史以来最佳的表现以及在SVHN和MNIST数据集上合理的表现。

1 Introduction

卷积神经网络(CNN)由卷积层和池化层交替组成。卷积层使用线性滤波器和底层receptive field做内积,然后接一个非线性的激活函数,得到的输出称作特征图(feature map)。

CNN的卷积滤波器是底层数据块的广义线性模型(generalized linear model )(GLM),而且我们认为它的抽象程度较低。这里的抽象较低是指该特征对同一概念的变体是不变的。用更有效的非线性函数逼近器代替GLM可以增强局部模型的抽象能力。当样本的隐含概念(latent concept)线性可分时,GLM可以达到很好的抽象程度,例如:这些概念的变体都在GLM分割平面的同一边,而传统的CNN就默认了这个假设——认为隐含概念(latent concept)是线性可分的。然而,同一概念的数据通常是非线性流形的(nonlinear manifold),捕捉这些概念的表达通常都是输入的高维非线性函数。在NIN中,GLM用“微型网络”结构替代,该结构是一个非线性函数逼近器。在本项研究中,我们选择多层感知器实例化微型网络,该感知器是一个通用函数逼近器,也是一个通过反向传播训练的神经网络。

最终结构我们称为“mlpconv”层,与CNN的比较见图1.
image.png

图1 线性卷积层与mlpconv层的比较。线性卷积层包含线性滤波器,而mlpconv层包含的是微型网络(本文选择多层感知器)。两种层都将局部感受野映射到了隐含概念的置信度值

线性卷积层和mlpconv层都从局部感受野(receptive field)映射到了输出特征向量。mlpconv 层将局部块的输入通过一个由全连接层和非线性激活函数组成的多层感知器(MLP)映射到了输出的特征向量。MLP在所有局部感受野中共享。和CNN一样,在输入上滑动MLP得到特征图,NIN的总体结构是一系列mplconv层的堆叠。被称作“Network In Network”(NIN),因为内部含有MLP。

我们没有采用传统CNN的全连接层进行分类,而是直接通过全局平均池化层(GAP)输出最后一个mlpconv层特征图的空间平均值作为类别的置信度值,然后将得到的向量输入softmax层。在传统的CNN中,很难解释如何将来自分类层(objective cost layer)的分类信息传递回前一个卷积层,因为全连接层像一个黑盒一样。相比之下,全局平均池化层(GAP)更有意义且容易解释,因为它强化了特征图与分类的对应关系,这是通过使用微型网络构成的局部建模器实现的。此外,全连接层更容易过拟合且严重依赖于dropout正则化,而GAP则本身就是一个结构化的正则化器,能避免整体结构的过拟合。

2 Convolutional Neural Networks

经典卷积神经网络由卷积层和空间池化层交替堆叠产生。卷积层通过线性卷积滤波器接一个非线性激活函数(如rectifier,sigmoid,tanh等等)生成特征图。例如使用rectifier激活函数,特征图的计算如下:

image.png

这里的(i, j)是特征图像素的索引,x_ij代表以位置(i, j)为中心的输入块,k用来索引特征图的颜色通道。

当隐含概念线性可分时,这种线性卷积足以用于抽象,但是要想得到更好的抽象,应该是用输入数据的高度非线性函数。在传统的CNN中,这可以通过利用一套完整的滤波器来弥补,覆盖所有隐含概念的变化。也就是说,单独的线性滤波器可以学习检测同一概念的不同变化。但是同一概念使用太多的滤波器会给下一层带来额外的负担,需要考虑来自前一层的所有变化的组合,来自更高层的滤波器会映射到原始输入的更大区域,它通过结合下层的较低级概念生成较高级的概念,因此,我们认为在每一个局部块结合生成更高级概念之前就作出更好的抽象是更有益的。

在最近的maxout网络中,特征图的数目通过在affine feature maps上做最大池化来减少(affine feature maps是线性卷积未通过激活函数的直接结果)。线性函数的最大化使分段线性逼近器能逼近任何凸函数。与执行线性可分的传统卷积层相比,maxout网络更有效,因为它能分离在凸集内的概念。这种改进使maxout网络在几个基准数据集上表现出色。

但是maxout网络加了一个前提:隐含概念位于输入空间的凸集内,而这是不一定的。因此应该使用一个更通用的函数逼近器,在隐含概念处于更复杂的分布时也依然能用。我们通过使用新的“Network In Network”结构在实现这个需求,在每个卷积层内引入一个微型网络,来计计算和抽象每个局部块的特征。

在输入上滑动微型网络已经在之前的研究中提出过。比如,Sturctured Multilayer Perceptron(SMLP)在输入图片的不同块中使用了共享的多层感知器;在另一项研究中,基于神经网络的滤波器被训练以用于面部检测。但是,他们都是针对某个特定问题设计的,且滑动的网络结构都只有一层。NIN则从一个通用的角度上提出,微型网络被整合到CNN结构中,以追求对各级特征的更好的抽象。

3 Network In Network

我们首先强调提出的“Network In Network”结构的关键组成:3.1节和3.2节分别介绍了MLP卷积层和全局平均池化层。然后我们在3.3节详细介绍NIN整体。

3.1 MLP卷积层

由于隐含概念的分布一开始并不知道,所以用一个通用函数逼近器做局部块的特征提取,因为它能逼近隐含概念的更多抽象表示。Radial basis network和多层感知器是两个众所周知的通用函数逼近器。我们使用多层感知器,有两个原因,首先,多层感知器与卷积神经网络的结构一样,都是通过反向传播训练。其次多层感知器本身就是一个深度模型,符合特征再利用的精神。这种多层感知器层在文本被称作mlpconv,我们用它来替代GLM(general linear model)在输入上做卷积。图1展示了线性卷积层和mplconv层的不同。mlpconv层的计算如下:

image.png

公式2

这里n是多层感知器中的层编号。rectified为多层感知器的激活函数。

从cross channel(cross feature map)池化的角度来看,公式2等效于级联普通卷积层的cross channel parametric pooling。每个池化层在输入特征图上做加权线性重组,然后通过rectifier函数。池化了的cross channel特征图又在下一层池化,如此一遍又一遍重复。级联的cross channel parameteric pooling结构允许复杂的和可学习的cross channel信息进行交互。

cross channel parametric pooling层也等效于一个1x1卷积核的卷积层。这个解释可以更直观的理解NIN的结构。

与maxout层的比较: maxout网络中的maxout层在affine feature maps上做了最大池化,maxout层的特征图计算如下:

image.png

maxout线性函数形成了一个分段线性函数,可以给任何凸函数建模。对于一个凸函数来说,函数值在特定阈值下的样本点形成一个凸集,因此,通过拟合局部块的凸函数,可以形成样本点在凸集内的概念的分割超平面(例如,l2 balls, convex cones)。mlpconv层和maxout层的不同之处在与见凸函数拟合器用通用函数拟合器替代,使其能对更多的隐含概念分布建模。

3.2 Global Average Pooling

传统卷积神经网络在网络的较低层执行卷积。对于分类任务,最后一个卷积层得到的特征图被向量化然后送入全连接层,接一个softmax逻辑回归层。这种结构将卷积结构与传统神经网络分类器连接起来,见卷积层作为特征提取器,得到的特征用传统方式进行分类。

但是,全连接层容易过拟合,从而阻碍了整个网络的泛化能力。后来dropout被Hinton等人提出,用于正则化,在训练过程中随机地将全连接层的一半激活值置零,改善了它的泛化能力并且很大程度地预防了过拟合。

在本文中,我们提出了另一个策略,叫做全局平均池化层,用它来替代CNN中的全连接层。想法是在最后一个mlpconv层生成一个分类任务中相应类别的特征图。我们没有在特征图最顶端增加全连接层,而是求每个特征图的平均值,得到的结果向量直接输入softmax层。GAP相比全连接层的优点在于通过增强特征图与类比间的对应关系使卷积结构保留的更好,使特征图分类是可信的得到很好的解释;另一个优点是GAP层中没有参数设置,因此避免了过拟合;此外,GAP汇聚了空间信息,所以对输入的空间转换更鲁棒。

我们可以看到GAP作为一个正则化器,加强了特征图与概念(类别)的可信度的联系。这是通过mlpconv层实现的,因为他们比GLM更好逼近置信图(conficence maps)。

3.3 Network In Network Structure

NIN的整体结构是一系列mlpconve层的堆叠,最上层接一个GAP层和分类层。mlpconv层间的子层可以被相加,像CNN和maxout网络一样。图2展示了一个包含三个mlpconv层的NIN。每个mlpconv层,包含一个三层的感知器,NIN和微型网络的层数都是灵活的,可以根据具体任务微调。
image.png

图2 NIN的整体结构。本文的NIN由三个mlpconve层和一个GAP层堆叠而成。

4 Experiment

4.1 Overview

我们在四个基准数据集上评估了NIN:CIFAR-10,CIFAR-100,SVHN和MNIST。网络在这些数据上都使用三层堆叠mplconv层结构,mlpconv层后面都跟随一个最大池化层,把原输入样本缩减一倍。作为正则化器,除了最后一个mlpconv层外所有输出都加一个dropout。除非特别说明,否则实验部分的所有全连接层都用全局平均池化层替代。另一个正则化方法是和Krizhevsky等人一样的权重衰减。图2展示了本节所用的NIN网络整体结构,详细的参数设置在补充材料中。我们使用由AlexKrizhevsky开发的超快速cuda-convnet代码来实现我们的网络。数据预处理和训练集验证集的拆分同Goodfellow。

我们的训练过程同Krizhevsky等人一样。也就是说,我们手动初始化了权重以及学习率,使用128小批次训练。训练层初始化权重和学习率开始,直到训练集上的准确率停止改善,然后损失率减少10倍,再继续训练,重复直到学习率衰减到1%。

4.2 CIFAR-10

CIFAR-10数据集由10类自然图片组成,有50000张训练图片,10000张测试图片,每张图片是32x32的RGB图片。对于这个数据集,我们使用与Goodfellow在maxout network中相同的global contrast n