NIN详解

NIN

论文《Network In Network》

1. 设计思路

卷积神经网络(CNN,Convolutional Neural Network)中,包含多个卷积层和池化层。

在传统的CNN模型中,卷积层通过filter进行卷积操作,再使用非线性激活函数进行处理,从而产生特征映射(feature mapping)。其中,高层卷积层提取到的feature mapping是在底层卷积层提取到的feature mapping的基础上进行再提取得到的,所以如果提高每个卷积层的特征提取能力,那么对于整体的特征能力来说也会有一定提升。

CNN的卷积层可以看作是一个广义的线性模型(GLM, Generalized Linear Model)。当特征是线性可分时,卷积层可以表现出很好的提取性能,然而输入数据的特征往往是高度非线性的,此时卷积层并不能表现出很好的特征提取能力。这个问题在传统CNN中可以通过增加卷积层中的filter数量来进行补偿,但是增加filter数量会为一下层带来负担。那么考虑使用一个功能更强大的非线性函数逼近器(nonlinear function approximator)去替代GLM就可以提高模型的特征提取能力。

2.模型细节

2.1 Mlpconv Layer

按照上述思路,NIN(Network In Network)中使用包含多层感知机(MLP,Multi-Layer Perceptron)的mlpconv层作为非线性函数逼近器替代传统CNN中的卷积层,以此来提高每层的特征提取能力。

NIN详解_第1张图片

常见的通用非线性函数逼近器有径向基多层感知机(MLP),NIN模型在mlpconv中使用MLP的原因如下:

  1. MLP和conv都适用于反向传播算法;
  2. MLP可以有很多层,以此来实现特征的复用;

具体来说,NIN模型中的mlpconv层是在对input进行卷积后,将卷积的得到的feature mapping送入MLP中。

从跨通道(cross channel)的角度来看,MLP等效于在卷积的基础上的一个级联的跨通道参数池化层(cascaded cross channel parametric pooling)。在MLP的每一层,对输入的feature mapping进行线性组合,然后通过ReLU激活函数,重复这个过程,以实现跨通道的信息交互(可以参考1*1的卷积层,1*1卷积层在对feature mapping进行embedding时,实现了feature mapping的跨通道信息交互)。

2.2 全局平均池化 (GAP,Global Average Pooling)

在传统的CNN模型中,卷积层的主要功能是提取图像特征,在最后一层卷积层得到的feature mapping以向量的形式送入全连接层(FC,fully connected layer),通过softmax logistic regression layer后实现对图片的分类。由于FC的参数很多,很容易出现过拟合问题,使用Dropout可以在一定程度解决过拟合问题。

在NIN模型中,文章提出使用全局平均池化层(GAP)替代传统CNN模型中的全连接层(FC)。

GAP的具体操作为:将最后一层卷积层得到的特征向量的每个通道的平均值作为输入直接送入softmax logistic regression layer。

GAP与FC的相同点是两者都对特征向量进行了一定的线性组合,不同点在于两者进行线性组合的变换矩阵不同。相比于FC,GAP有如下优势:

  1. GAP提高了CNN的可解释性,FC层作为一个黑盒,使得传统CNN的可解释性较差;
  2. GAP没有需要进行优化的参数,减少了模型整理的参数数量,减少了模型的过拟合问题;
  3. GAP是对特征向量的每个通道求平均数,这提高了模型对输入的空间平移问题更具鲁棒性。

文中对GAP、FC、FC+Dropout在CIFAR-10数据集上的性能进行了测试,实验表明CNN模型在使用GAP时的性能最好。

NIN详解_第2张图片

同时,文中也验证了GAP可以作为一个正则化器来减少过拟合问题,其效果略差于Dropout,原因可能是GAP需要卷积层中加入非线性激活函数。

3. 模型结构

NIN模型的结构如下图,由若干mlpconv层、GAP层以及softmax层组成。

NIN详解_第3张图片

你可能感兴趣的:(卷积神经网络,计算机视觉,深度学习,神经网络,人工智能)