【论文笔记】Network In Network

介绍

    CNN中用到的卷积滤波器对于潜在的数据块来说是一个通用的线性模型(GLM),我们认为GLM抽象的层次比较低。用一个更强大的非线性函数逼近器作为“微型网络”取代GLM能提高模型的抽象能力。在NiN中我们的微型网络选用的是一个多层感知机。从网络结构的角度来看我们相当于增加了一个称之为mlpconv的网络层,它和线性的卷积层类似,都是将局部感受野映射为一个特征向量。Mlpconv使用一个包含了多个全连接层和非线性激活函数的多层感知机(MLP)将输入数据块映射为输出特征向量。通过像CNN那样在输入数据上滑动MLP从而得到特征图(feature maps),并将其导入到下一层网络。NiN的整体结构可以看作是多个mlpconv层的叠加。

【论文笔记】Network In Network_第1张图片

    我们使用一个全局池化层(global average pooling layer)取代最终的全连接层,对最后一层mlpconv的输出特征图通过一个全局池化层进行空间平均作为分类置信度,结果向量直接导入到softmax分类器。全局池化层相比全连接层更具有可解释性,因为它将特征图和分类做了对应。除此之外,全连接层更容易过拟合并且严重依赖于dropout正则化,而全局池化层它自身就相当于一个正则化器,原生的具备防止过拟合的功能。

CNN

    经典的卷积神经网络由交替堆叠的卷积层和空间池化层构成。卷积层通过卷积滤波器再紧跟着一个非线性激活函数(rectifier、sigmoid、tanh等等)生成特征图。拿线性修正器来说,特征图可以由以下公式计算得到:

其中,(i,j)表示特征图中像素点的坐标,Xi,j表示以(i,j)为中心点的输入数据块,k表示特征图的通道索引。

Network In Network

    首先,强调一下我们提出的“Network In Network”结构中的核心组件:MLP卷积层和全局池化层。

  • MLP Convolution Layers

    考虑到潜在概念(latent concepts)没有先验信息,使用通用的函数逼近器来做局部数据的特征提取是可取的,它能够更加接近于潜在概念的抽象表达。羟向基和多层感知机是两种比较著名的通用函数逼迫器。我们之所以选择多层感知机有两方面的原因。首先,多层感知机与卷积神经网络兼容,也是基于反向传播算法进行训练。其次,多层感知机自身就可以是一个深度模型,这与特征重用的思想一致。在这篇论文中,我们提出的用于取代卷积层的新的网络层称之为mlpconv,其计算公式如下。

【论文笔记】Network In Network_第2张图片

n表示多层感知机的层数,激活函数为修正线性单元。

注:修正线性函数神经网络中常用的一种激活函数,公式表示为:f(x) = max(0, x)。它被认为是更加符合神经元信号激励原理。采用了修正线性函数作为激活函数的单元被称之为修正线性单元。

 

  • Global Average Pooling

    传统的卷积神经网络中,最后一层卷积层形成的特征图将被向量化并导入到全连接层,紧接一个softmax逻辑回归层。这一结构桥接了卷积结构和传统的神经网络分类器。卷积结构被当作特征提取器,而结果特征通过传统神经网络的方式进行分类。然而,使用全连接层容易过拟合,因而限制了整体网络的泛化性能。

    这篇文章中,我们提出了另一策略,在CNN中用全局平均池化来取代传统的全连接层。意思就是,在mlpconv层之后对于每一个对应的分类生成一个特征图,我们对每一个特征图进行全局平均池化,结果向量直接导入到softmax层。优点在上文中已经提及,这里不再复述。

 

  • Network In Network Structure

    NiN的整体结构是一个mlpconv层的堆叠,结构的顶部是一个全局平均池化层和目标成本层。可以在mlpconv层之间增加降采样层。下图展示了一个3层mlpconv层的NiN结构。在每一个mlpconv层中包含3层感知器。NiN和微型网络的层数可以针对特定的任务进行灵活地调整。

【论文笔记】Network In Network_第3张图片

 

你可能感兴趣的:(深度学习,论文)