Network In Network 论文笔记

   参考了其他公开的博客,在翻译论文的基础上结合个人理解。如果有理解不到位的地方,请指正。

  转载请注明出处:https://blog.csdn.net/weixin_37904412/article/details/79938708

  此论文是在2014年发表的,这篇paper提出了两个创新点。首先,作者认为经典cnn的卷积核是一个generalized linear model(广义线性模型GLM),而GLM对特征的抽象层次比较低,进而提出一种micro neural network(微神经网络)的结构代替GLM可以增强模型的抽象能力。其次,作者在模型的分类层中使用global average pooling(全局平均池化)层代替全连接层,减轻过拟合。后续的GoogLeNet和ResNet等模型中都引用了本论文提出的结构。

0 摘要

1、论文提出了一种Network In Network(NIN)的结构,增强感受野内局部图像块的模型辨别能力。经典的CNN使用的是线性filters + 非线性激活函数 的结构扫描输入图像。本论文构建了一种稍微复杂一些的微神经网络结构,使用它从感受野中提取抽象特征。微神经网络结构的设计采用multilayer perceptron(多层感知机MLP)的形式。他的工作原理和经典CNN很相似,在输入图像上滑动微神经元获得特征图,然后输入下一层。多个微神经网络的结构堆叠起来,组成Deep NIN。

2、论文提出在分类层上对特征图使用全局平均池化的方法,代替以往在分类层上使用的全连接层,可以减轻过拟合(减少了大量参数),便于加深网络的层数和网络的训练。

1 介绍

    经典CNN的结构是:卷积层+池化层的交替组合。其中卷积层的输出feature map = 点积(filters,input)+ 非线性激活函数 。CNN的filters被认为是一种广义线性模型,广义线性模型的抽象层次较低。当数据是线性可分的时候,GLM可以实现很好的抽象。这也就是说,经典的CNN有一个潜在的观念,即认为输入数据是线性可分的。然而,输入数据一般都是非线性的,要捕获真实的数据应该要使用非线性的函数。在这种情况下,作者提出了微神经网络结构,它是一种通用的非线性函数逼近器,可以增强模型的抽象能力。微神经网络结构采用MLP的形式,一方面是因为MLP被认为是一种通用的函数逼近器,另一方面是因为MLP可以用反向传播训练。这种结合了MLP的CNN层写成mlpconv。mlpconv的结构增强了网络提取抽象特征的能力和网络的泛化能力。

经典cnn和mlpconv的对比如下图所示。


说明:经典的CNN局部感受野的运算可以看成是一个单层的网络,mlpconv可以看成每个局部感受野中包含了一个微型的多层结构。

    论文提出对于分类层,不再使用传统的全连接层,而是直接从最后一个mlpconv层输出的特征图中进行全局平均池化,将池化的结果向量作为类别置信度,输入到softmax层得到最终类别概率向量。相比于全连接层是黑盒子模型难以解释,全局平均池化的解释性更强。因为它强化了特征图和类别之间的对应关系。

2 卷积神经网络

    使用ReLU激活函数,经典CNN特征图的计算公式如下:

    

    其中,(i,j)是特征图上的像素点坐标,Xi,j是以位置(i,j)为中心的输入区块,k是特征图的通道数。

    线性卷积对于线性可分的数据来说,抽象特征的能力是足够的。然而,良好抽象的表示通常是输入数据的高度非线性函数。对于线性卷积,可以通过增加filter的数量,把所有可能的提取出来,这样就可以把我想要提取的特征都覆盖到。但是过多的filter会增加下一层的计算负担。在CNN中,较高层的CNN特征图映射到原始输入层对应较大的区域,CNN是通过结合许多低层次的概念产生更高层的概念。因此,在组合成更高层概念之前,对每一个低层的概念进行更好的抽象是很有益的。

    近期提出的maxout网络,它的拟合能力非常强的,可以拟合任意的的凸函数。最直观的解释就是任意的凸函数都可以由分段线性函数以任意精度拟合。但是,maxout的一个假设是数据的分布是位于输入空间的凸集中。在真实的数据中,这一假设不一定成立。当真实数据的分布更复杂时,有必要使用更一般的函数逼近器。本文的微神经网络结构就能实现这一点。微神经网络不仅能拟合任何凸函数,还可以拟合任何函数。

3 Network In Network

3.1 MLP 卷积层

  由于没有关于真实数据分布的鲜艳知识,所以希望使用一个通用函数逼近器来提取局部块特征,因为它能够近似真实数据的抽象表示。径向基网络和多层感知机是两种普遍的通用函数逼近器,本文使用的是多层感知机。原因有两点:首先,MLP和卷积神经网络的结构可以兼容,因此可以使用BP算法训练。其次,MLP是一种深度模型,可以特征重用。

    使用ReLU激活函数的,n个MLP卷积层特征图的计算公式如下:

 

  上述公式等效于在标准的卷积层上使用跨通道参数化感知层(cccp层),如下图。在实现上,cccp层等效于1*1的卷积层。1*1的卷积层对特征图进行跨通道信息整合,然后通过ReLU激活函数,最后进行max pooling。

     1*1卷积层有两个作用:

1、mlpconv = 卷积 + 1*1卷积。其中1*1卷积这个操作实现的是多个feature map的线性组合,实现跨通道的交互和信息整合;

2、进行卷积核通道数的降维和升维。

下图中1*1*C2的卷积核里,每一个圆圈表示一个C1长度的向量。

 H*W*C2结果的特征图里,每一个圆圈表示输入特征图和对应位置卷积核点积运算后的结果,是一个数值。

 

论文中,NIN网络的结构如下图。


3.2 全局平均池化

 传统的卷积神经网络在分类的时候,最后的卷积层的特征映射输入到全连接的层,接着是softmax层。这种结构将卷积结构与传统的神经网络分类器相连接。它将卷积图层视为特征提取器。全连接层比较容易过拟合,网络的泛化能力不好。dropout正则化的提出可以防止一定程度的过拟合,提升网络的泛化能力。

   本文中,作者提出使用全局平均池化层代替全连接层。全局平均池化为最后一个最后一个mlpconv层中的每个相应类别的分类任务生成一个特征映射,采用每个特征图的平均值。将结果向量输入到softmax层。全局平均池化的示意图如下。


 全局平均池化的优点:

  全局平均池化通过强化特征映射和类别之间的对应关系而更加原生于卷积结构,因此特征映射很容易被理解为类别置信图。

  全局平均池化没有需要优化的参数,可以避免过拟合。

  全局平均池化汇总了空间信息,因此,它对输入空间的转换更鲁棒。 

4 实验

4.1 CIFAR-10

  实验结果如下图。

  补充一条数据:NIN网络不使用dropout时,测试集的误差=14.51%。说明在mlpconv层之间使用dropout也能提升网络性能。

  

4.2 CIFAR-100

  

4.3 Street View House Numbers

     

4.4 MNIST

 

4.5 全局平均池化作为正则化

在conv中:

  test eroror
conv + FC  17.56%
conv + FC + dropout 15.99%
conv + 全局平均池化   16.46%  (仅比dropout差一些)

结论:全局平均池化作为正则化方式对全连接层和conv层都有效果。

参考文献:

Lin, M., Chen, Q., and Yan, S. Network in network. In Proc. ICLR, 2014.  

猜你喜欢

转载自blog.csdn.net/weixin_37904412/article/details/79938708