前言
NIN:Network In Network提出了MLPconv和GAP代替全连接层的思路
Abstract
我们提出了一种称为“Network In Network”(NIN)的新型深层网络结构,以增强感受野内局部斑块的模型可分辨性。传统的卷积层使用线性滤波器和非线性激活函数来扫描输入。取而代之的是,我们构建了具有更复杂结构的微神经网络来提取感受野中的数据。我们用多层感知器(MLP)来实例化微神经网络,它是一个强大的函数逼近器。以与CNN类似的方式,通过在输入端滑动微网络来获得特征图;然后它们被送入下一层。可以通过堆叠多个上述结构来实现深度NIN。通过微网络增强局部建模,我们能够在分类层中利用特征图上的全局平均池,这比传统的完全连接层更容易解释,也不容易过度拟合。我们在CIFAR-10和CIFAR-100上展示了NIN最先进的分类性能,并在SVHN和MNIST数据集上展示了合理的性能。
1 Introduction
卷积神经网络(CNN)[1]由交替卷积层和池层组成。卷积层采用线性滤波器和潜在感受野的内积,然后在输入的每个局部部分采用非线性激活函数。结果输出称为特征映射。
CNN中的卷积滤波器是底层数据补丁的广义线性模型(GLM),我们认为GLM的抽象级别较低。通过抽象,我们的意思是特征对于相同概念的变体是不变的[2]。用更有效的非线性函数逼近器代替GLM可以增强局部模型的抽象能力。当潜在概念的样本是线性可分离的,即概念的变体都位于GLM定义的分离平面的一侧时,GLM可以实现很好的抽象程度。因此,传统的CNN隐式地假设潜在概念是线性可分的。然而,同一概念的数据通常存在于非线性流形上,因此捕获这些概念的表示通常是输入的高度非线性函数。在NIN中,GLM被替换为“微网络”结构,它是一种通用的非线性函数逼近器。在这项工作中,我们选择多层感知器[3]作为微网络的实例,它是一个通用函数逼近器和一个可通过反向传播训练的神经网络。
图1:线性卷积层和mlpconv层的比较。线性卷积层包括一个线性滤波器,而mlpconv层包括一个微网络(本文选择多层感知器)。两层都将局部感受野映射到潜在概念的置信值。
我们称之为mlpconv层的结果结构与图1中的CNN进行了比较。线性卷积层和mlpconv层都将局部感受野映射到输出特征向量。mlpconv使用多层感知器(MLP)将输入局部patch映射到输出特征向量,多层感知器(MLP)由具有非线性激活函数的多个完全连接的层组成。MLP在所有局部感受野之间共享。以与CNN类似的方式将MLP滑动到输入上,获得特征图,然后将其送入下一层。NIN的整体结构是多个mlpconv层的堆叠。它被称为“网络中的网络”(NIN),因为我们有微网络(MLP),它是mlpconv层内整个深层网络的组成元素。
在CNN中,我们不采用传统的全连接层进行分类,而是通过一个全局平均池层直接输出最后一个mlpconv层的特征图的空间平均值作为类别的置信度,然后将得到的向量输入softmax层。在传统的CNN中,很难解释目标成本层的类别级信息是如何传递回前一个卷积层的,因为在这两个层之间有一个完全连接的层充当黑匣子。相比之下,全局平均池更具意义和可解释性,因为它加强了特征地图和类别之间的对应,这是通过使用微网络进行更强的局部建模实现的。此外,完全连接的层容易过度拟合,并且严重依赖于退出正则化[4][5],而全局平均池本身就是一种结构正则化器,它从本质上防止了整体结构的过度拟合。
2 Convolutional Neural Networks
经典卷积神经元网络[1]由交替堆叠的卷积层和空间池层组成。卷积层通过线性卷积滤波器和非线性激活函数(整流器、sigmoid、tanh等)生成特征映射。以线性rectifier为例,可按如下方式计算特征映射:
f
i
,
j
,
k
=
m
a
x
(
w
k
T
x
i
,
j
,
0
)
.
?
?
?
(
1
)
f_{i,j,k}=max(w_k^Tx_{i,j},0).---(1)
fi,j,k?=max(wkT?xi,j?,0).???(1)
这里
(
i
,
j
)
(i,j)
(i,j)是特征图中的像素索引,
x
i
j
x_{ij}
xij?代表以位置
(
i
,
j
)
(i,j)
(i,j)为中心的输入patch,
k
k
k是用于索引特征图的通道。
当潜在概念的实例是线性可分的时,这种线性卷积就足以进行抽象。然而,实现良好抽象的表示通常是输入数据的高度非线性函数。在传统的CNN中,这可能通过使用一套过于完整的过滤器[6]来补偿,以覆盖潜在概念的所有变化。也就是说,可以学习单个线性滤波器来检测同一概念的不同变化。然而,对于单个概念来说,过多的滤波器对下一层施加额外的负担,这需要考虑前一层的所有组合的变化[7 ]。在CNN中,来自更高层的过滤器映射到原始输入中的更大区域。它通过组合下层的低级概念生成高级概念。因此,我们认为在将每个局部补丁合并到更高级别的概念之前,对它们进行更好的抽象是有益的。
在最近的maxout网络[8]中,通过仿射特征映射上的最大池来减少特征映射的数量(仿射特征映射是线性卷积的直接结果,无需应用激活函数)。线性函数上的最大化使得分段线性逼近器能够逼近任何凸函数。与执行线性分离的传统卷积层相比,maxout网络更有效,因为它可以分离位于凸集内的概念。这种改进使maxout网络在多个基准数据集上具有最佳性能。
然而,maxout网络强加了一个先验条件,即潜在概念的实例位于输入空间中的凸集内,这不一定成立。当潜在概念的分布更复杂时,有必要使用更一般的函数逼近器。我们试图通过引入新的“网络中的网络”结构来实现这一点,在每个卷积层中引入一个微网络来计算局部面片的更多抽象特征。
在以前的几项工作中,已经提出在输入端滑动微网络。例如,结构化多层感知器(SMLP)[9]在输入图像的不同patch上应用共享多层感知器;在另一项工作中,基于神经网络的滤波器被训练用于人脸检测[10]。然而,它们都是针对特定问题设计的,并且都只包含一层滑动网络结构。NIN是从一个更普遍的角度提出的,微网络被集成到CNN结构中,以寻求对所有级别的特征进行更好的抽象。
3 Network In Network
我们首先强调我们提出的“网络中的网络”结构的关键组件:分别在3.1节和3.2节的MLP卷积层和3的 global averaging pooling层。然后,我们将在3.3节详细说明整个NIN。
3.1 MLP Convolution Layers
如果没有关于潜在概念分布的先验知识,则希望使用通用函数逼近器来提取局部patch的特征,因为它能够逼近潜在概念的更抽象表示。径向基网络和多层感知器是两种著名的通用函数逼近器。我们在这项工作中选择多层感知器有两个原因。首先,多层感知器与卷积神经网络的结构兼容,卷积神经网络采用反向传播进行训练。第二,多层感知器本身可以是一个深层模型,这符合特征重用的精神[2]。本文将这种新型层称为mlpconv,其中MLP代替GLM对输入进行卷积。图1说明了线性卷积层和mlpconv层之间的差异。mlpconv层进行的计算如下所示:
f
i
,
j
,
k
1
1
=
m
a
x
(
w
k
1
1
T
x
i
,
j
+
b
k
1
,
0
)
.
.
.
.
f
i
,
j
,
k
n
n
=
m
a
x
(
w
k
n
n
T
f
i
,
j
n
?
1
+
b
k
n
,
0
)
.
?
?
?
(
2
)
f_{i,j,k_1}^1=max({w_{k_1}^1}^Tx_{i,j}+b_{k_1},0). \\ ... \\ f_{i,j,k_n}^n=max({w_{k_n}^n}^Tf_{i,j}^{n-1}+b_{k_n},0).---(2)
fi,j,k1?1?=max(wk1?1?Txi,j?+bk1??,0)....fi,j,kn?n?=max(wkn?n?Tfi,jn?1?+bkn??,0).???(2)
这里
n
n
n是多层感知器中的层数。在多层感知器中,采用Rectified linear unit作为激活函数。 从交叉通道(交叉特征映射)池的角度来看,公式(2)相当于正常卷积层上的级联交叉通道参数池。每个池层在输入特征映射上执行加权线性重组,然后通过rectifier linear unit。跨通道汇集的特征图在下一层中一次又一次地跨通道汇集。这种级联的跨通道参数池结构允许跨通道信息的复杂且可学习的交互。
交叉信道参数池层也等效于具有1x1卷积核的卷积层。这种解释使人们更容易理解NIN的结构。 Comparison to maxout layers: maxout网络中的maxout层跨多个仿射特征映射执行最大池[8]。maxout图层的特征图计算如下:
f
i
,
j
,
k
=
m
a
x
m
(
w
k
m
T
x
i
,
j
)
.
?
?
?
(
3
)
f_{i,j,k}=max_m(w_{k_m}^Tx_{i,j}).---(3)
fi,j,k?=maxm?(wkm?T?xi,j?).???(3) 线性函数上的Maxout形成一个分段线性函数,该函数能够建模任何凸函数。对于凸函数,函数值低于特定阈值的样本构成凸集。因此,通过逼近局部patch的凸函数,maxout能够为样本位于凸集(即L2球、凸锥)内的概念形成分离超平面。Mlpconv层与maxout层的不同之处在于,凸函数近似器被通用函数近似器所取代,该通用函数近似器在建模潜在概念的各种分布方面具有更大的能力。
3.2 Global A verage Pooling
传统的卷积神经网络在网络的底层执行卷积。对于分类,最后一个卷积层的特征图被矢量化并输入到完全连接的层中,然后是softmax logistic回归层[4][8][11]。这种结构将卷积结构与传统的神经网络分类器连接起来。它将卷积层视为特征提取器,并以传统方式对生成的特征进行分类。
然而,全连接的层容易过度拟合,从而影响整个网络的泛化能力。Hinton等人[5]提出了dropout作为一种正则化器,它在训练期间将完全连接层的一半激活随机设置为零。它提高了泛化能力,并在很大程度上防止了过度拟合[4]。
在本文中,我们提出了另一种称为全局平均池的策略来取代CNN中传统的完全连接层。其思想是为最后一个mlpconv层中分类任务的每个对应类别生成一个特征图。我们不在特征图的顶部添加全连接层,而是取每个特征图的平均值,结果向量直接输入softmax层。与全连接层相比,全局平均池的一个优点是,通过加强特征图和类别之间的对应关系。,它更适合卷积结构。因此,特征图可以很容易地解释为类别置信映射。另一个优点是,在全局平均池中没有要优化的参数,因此在该层避免了过度拟合。此外,全局平均池对空间信息进行汇总,因此对输入的空间转换更具鲁棒性。
我们可以将全局平均池视为一种结构正则化器,它明确地将特征映射强制为概念(类别)的置信映射。这是由mlpconv层实现的,因为它们比GLM更接近置信图。
3.3 Network In Network Structure
NIN的总体结构是一堆mlpconv层,其上是全局平均池和the objective cost layer。在CNN和maxout网络中,可以在mlpconv层之间添加子采样层。图2显示了具有三个mlpconv层的NIN。在每个mlpconv层中,有一个三层感知器。NIN和微网络中的层数都是灵活的,可以针对特定任务进行调整。
5 Conclusions
我们提出了一种新的深度网络,称为“网络中的网络”(NIN),用于分类任务。这种新结构由多层感知器卷积输入的mlpconv层和一个全局平均池层组成,以取代传统CNN中的完全连接层。Mlpconv层可以更好地对局部面片进行建模,而全局平均池作为结构正则化器,可以防止全局过拟合。利用NIN的这两个组件,我们在CIFAR-10、CIFAR-100和SVHN数据集上展示了最先进的性能。通过特征图的可视化,我们证明了NIN最后一层mlpconv的特征图是类别的置信图,这激发了通过NIN执行目标检测的可能性。
参考
MLP卷积的理解 GAP全局平均池化的理解
|