(Deep Learning)network in network 学习笔记
摘要
提出一种新的深层网络“NIN”模型在感受野的辨别力。通过建立微型神经网络,在感受野中获得更复杂的抽象结构。
对所有的feature map使用global average pooling(全局均值池化)代替传统CNN中的全连接层。有助于描述输出类的特征和降低过拟合。
提出问题
- 传统的卷积神经网络一般来说是由:线性卷积层、池化层、全连接层堆叠起来的网络。卷积层通过线性滤波器进行线性卷积运算,然后在接个非线性**函数,最终生成特征图。卷积层对下层的数据块来说是一个GLM(generalized linear model,广义线性模型)。作者认为传统CNN对线性特征有良好的特性,但对于大多数输入数据来说都具有高度非线性特征。而传统CNN通过增加大量的filter来覆盖到所有概念,从而增加了很大参数量。
- 对于传统的CNN是利用卷积层进行特征提取,然后在卷积层后接全连接层进行分类,但是全连接层需要大量的学习参数,这样容易造成过拟合。
解决方案
- MLP卷积层
Mlpconv层可以看成是每个卷积的局部感受野中还包含了一个微型的多层网络。在传统CNN的卷积层中,我们局部感受野窗口的运算,可以理解为一个单层的网络。
但是传统的abstraction的能力不足,对处理线性可分的的 concept 也许是可以的,但是更复杂的 concepts 它有能力有点不够了。于是作者提出了MLP代替GLM(generalized linear model),mlpconv层的网络结构图如下:
**这里作者提出了一个观点:对于相同概念的不同变体,其特征应该是不变的。**
传统卷积网络中,层次较深的网络是对于浅层网络学习到的特征的整合,所以在对特征进行高层次的整合之前,进行进一步的抽象是有必要的。因为MLP是一个通用近似函数而且可由神经网络使用反向传播进行训练。通过在局部感受野中引入MLP,在局部感受野中进行更加复杂的运算,既减少了了一定的参数,又对特征获取了较好的抽象。MLP与以往的filter相同,通过窗口的滑动进行处理。对于mlpconv(multilayer perceptron + convolution)层每张特征图的计算公式如下:
与maxout layers比较
maxout的公式如下:
论文对比了maxout network,这种网络通过对仿射特征图进行最大值池化降低了输出特征图的数量。
对线性函数进行最大化处理可得到分段线性函数近似器,可近似任意的凸函数!相比传统的CNN,maxout network更有效,因为可以区别凸集内的特征。但是maxout network是假设特征位于凸集中,这在实际中并不是总能满足的。
mlpconv操作细节可以参考:http://www.cnblogs.com/yinheyi/p/6978223.html的博客
- Global Average Polling(全局均值池化)
对于分类问题,最后一个卷积层的 Feature Map 通常与全连接层连接,最后通过 softmax 逻辑回归分类。全连接层带来的问题就是参数空间过大,容易过拟合。早期 Alex 采用了Dropout 的方法,来减轻过拟合,提高网络的泛化能力,但依旧无法解决参数过多问题。
NIN 提出采用全局均值池化的方法,替代传统 CNN 中的全连接层。与传统CNN的全连接层不同的是,在mlpconv的最后一层会为每个分类类别生成一张相应的特征图,然后取每个特征图的均值,输入softmax得到最后的结果。例如cifar-10中,最后mlpconv会生成十张feature map对应0~9这十个分类类别,然后利用全局均值池化得到10维的输出向量。
这样采用均值池化,去除了构建全连接层的大量参数,大大减小网络规模,有效避免过拟合;另一方面的重要意义是,每张特征图相当于一个输出特征。
使用Global Average Polling代替全连接层,使得最后一个多层感知卷积层获得的每一个特征图能够对应于一个输出类别,优点如下:
1. 全局平均池化更原生的支持于卷积结构,通过加强特征映射与相应分(种)类的对应关系,特征映射可以很容易地解释为分类映射;
2. 全局平均池化一层没有需要优化的参数,减少大量的训练参数有效避免过拟合;
3. 全局平均池化汇总(求和)空间信息,增加空间变化的鲁棒性;
Global Average Polling操作细节可以参考:http://www.cnblogs.com/yinheyi/p/6978223.html的博客
上一篇: NIN论文笔记
下一篇: Oracle学习笔记——第三天
推荐阅读
-
(Deep Learning)network in network 学习笔记
-
深度学习基础模型NIN(Network in Network)+Pytorch
-
《Hands-On Machine Learning with Scikit-Learn & TensorFlow》读书笔记 第二章 机器学习项目
-
Machine Learning In Action 学习笔记之 KNN算法
-
Introduction to Deep Learning with PyTorch笔记
-
笔记:DetNet: A Backbone network for Object Detection论文阅读
-
【含课程pdf & 测验答案】吴恩达-机器学习公开课 学习笔记 Week8-1 Unsupervised Learning
-
强化学习Deep Q-Learning系列在gym上SpaceInvaders游戏的应用
-
【莫烦强化学习】视频笔记(二)3.Q_Learning算法实现走迷宫
-
【论文笔记】:Pyramid Feature Attention Network for Saliency detection