Network-in-Network论文阅读笔记

目录

  • 前言
  • Network-in-Network论文阅读笔记
    • Abstract
    • 1. Introduction
    • 2. Convolutional Neural Networks
    • 3. Network In Network
      • 3.1 MLP Convolution Layers
      • 3.2 Global Average Pooling
      • 3.3 Network In Network Structure
    • 4 Experiments
    • 5 Conclusions

前言

    NIN相比GoogLeNet来说还是易读多了。由于GoogLeNet借鉴了很多NIN的思想,所以就拿过来深入学习一下。这次的参考资料不多:
  普通卷积、mobilenet卷积、全局平均池化的矩阵描述
  NIN论文下载传送门
  NIN的核心思想就是1*1卷积和全局平均池化。还是梳理一下全文,并在梳理的过程中掺入我自己的思考。

Network-in-Network论文阅读笔记

Abstract

    本文提出用一个微网络来代替卷积核提取特征,之后提出了使用全局平均池化来代替全连接进行分类。

1. Introduction

    传统神经网络中,一个滤波器(卷积核)是一个广义线性模型(generalized linear model (GLM),之所以说是广义线性模型,我猜测意思应该是卷积是一个线性操作,再经过relu后变成一个非线性映射,虽然不是严格的线性,但是和mlp相比就算广义线性了),这种广义的线性模型提取特征的能力较差(应该是映射关系相对简单,特征的抽象度不够)。当不同的类之间是线性可分的时候,GLM性能较好,但是这些类之间往往不是线性可分的,因此,从输入图像提取到的特征需要有较高的非线性程度。在NIN中,提取特征的算子由原来的卷积核变成一个微网络,这个微网络是一个更通用的非线性函数估计器,具有更强大的非线性映射估计能力(相对于卷积来说)。
  具体来说,这个微网络层我们用多层感知机(multilayer peceptron)来做,称之为mlpconv layer。通过不断地平移这个微网络,使其覆盖不同的局部区域,提取到不同的特征。所有被提取特征的局部区域都共享这个微网络的参数(也是参数共享的概念)。传统CNN和NIN的比较如下图:
  Network-in-Network论文阅读笔记_第1张图片
  与以往的全连接不同的是,我们将最后一层MLP的输出的每个通道的feature map视作一个类的confidence map(这实际上要求最后一层的输出通道等于需要分的类的数量),然后用全局平均池化(Global Average Pooling(GAP))来对每个feature map求平均,得到一个向量输入softmax。

2. Convolutional Neural Networks

     传统的CNN的映射关系是(感觉这里应该是少了偏置单元):
在这里插入图片描述
式中,(i, j)是feature map中的像素的位置,x_i,j是输入的局部区域,该区域的中心像素的位置是(i, j),k是feature map中的通道的位置。由于GLM产生特征的抽象度不够,目前的方法是用很多的卷积核去覆盖该位置特征的所有可能的情况,因此,作者考虑能不能提高每个特征提取滤波器的质量,来产生更抽象的特征。
   作者特别提到了maxout网络,该网络的做法是在卷积后、激活前,做一个最大池化,这种在多个线性函数中做最大池化操作可以产生一个分段线性函数,这可以用来估计任意的凸函数(为什么最大池化能产生分段线性函数,为什么分段线性函数能估计任意的凸函数,这个原理不是很清楚)。相比传统的GLM,这种改进也仅限于凸函数,不适应更复杂的情况,因此我们引入了NIN。

3. Network In Network

     本文的两大贡献,一是MLP卷积层,二是GAP。

3.1 MLP Convolution Layers

     我们选择多层感知机来设计微网络有两个原因:一是多层感知机更适应反向传播的CNN的结构;二是多层感知机自己也是一个深度模型,符合特征重用的思想。MLP层的计算规则如下:
Network-in-Network论文阅读笔记_第2张图片
式中,n是多层感知机的总层数。多层感知机中都是用relu激活(怎么感觉就是多做了几个卷积?没太看懂这个式子是什么意思)。
   从跨通道(跨feature map)的角度来看,上式等效于在原来的卷积层中级联一个跨通道的带参数的池化操作,每个池化层都是输入feature map的线性重组,之后通过relu激活。这种级联的带参数的跨通道池化可以使得不同通道的信息进行更复杂的融合。
   这种跨通道的带参数池化也等效于一个1*1的卷积。这种解释对于理解NIN的网络结构来说更加直观(好吧我知道你是1*1的卷积了,确实很直观)。
   NIN的网络结构如下:
Network-in-Network论文阅读笔记_第3张图片
  maxout网络仅限于凸函数,但是MLP能拟合出更复杂的函数,前面也说过了。

3.2 Global Average Pooling

     传统的CNN在网络的低层使用卷积,最后一层卷积层的feature map被转换成向量然后输入全连接做分类。这种结构在卷积结构和传统神经网络分类器之间构筑了一个桥梁。它将卷积层视作特征提取器,提取到的特征输入全连接,再使用传统的分类算法进行分类(在我的LeNet论文笔记中也提到了)。
   但是全连接很容易过拟合,全连接网络大大降低了网络的泛化能力。Dropout作为一个正则化手段,效果很好。
   我们提出用GAP取代全连接,在最后一层MLP后,产生的feature map每个通道对应一个类,然后将每个feature map求平均,将得到的向量直接输入softmax。GAP的优势:一是对于卷积结构来说,GAP相比全连接更native(我的理解是,全连接像是硬生生找了个外族人分类器来和卷积层对接,但是GAP相对来说更像是卷积层的本家人,和卷积层一起工作适应性更好,提取特征和分类的界限划分也不像之前那样明显了);二是GAP是池化层,没有需要优化的参数,因此降低了过拟合的风险;三是GAP将所有空间信息求平均,对于输入图像的空间平移具有更好的鲁棒性(如果输入图像发生平移,由于卷积是线性的,后面的所有feature map也发生平移,但是如果使用GAP,求平均的结果其实不会发生很大变化)。四(我自己加的,但是论文后面其实也有体现)是使用GAP可以更合理地解释CNN的机制。

3.3 Network In Network Structure

     NIN的网络结构,就是多个MLP堆叠,最后用GAP取代全连接。当然可以像传统CNN一样,在网络中适当地添加下采样层,来取得更好的性能。

4 Experiments

    文章在CIFAR-10、CIFAR-100、SVHN和MNIST四个数据集上进行了测试。具体的结果就不说了,但是文章发现,尽管用GAP取代了全连接,但是在网络中应用Dropout会进一步提高网络的性能,如下图所示:
Network-in-Network论文阅读笔记_第4张图片
  使用Dropout虽然训练集准确率下降了,但是测试集准确率上来了,减小了训练集和测试集之间的差距,降低了过拟合。至于Dropout的位置,文章说Dropout用在了除了最后一层MLP以外的所有的MLP层的输出中,貌似是二维的Dropout。而很多网络的Dropout都是用在全连接中的(包括借鉴了NIN思想的Inception v1),这里目前还不太清楚是怎么回事。
  文章还提到了GAP和全连接相似的地方是,两者都是转换成向量的feature map的线性变换。不同的是,GAP的线性变换矩阵是块对角矩阵,相对稀疏(取0的地方多),而全连接的变换矩阵是一种更密集的矩阵(非0地方多)。对于变换矩阵的理解如下:
Network-in-Network论文阅读笔记_第5张图片
  文章为了研究GAP的正则化效应,比较了三个网络。同样的NIN模型,第一个是最后用全连接,第二个是最后用全连接+Dropout,第三个最后是GAP。结果发现GAP效果更好:
  Network-in-Network论文阅读笔记_第6张图片
    上面发现GAP在NIN中效果很好,然后文章继续探索,GAP用在传统的CNN中好不好。文章拿了一个Hinton论文里面的CNN模型,对比发现,性能比较:全连接+Dropout > GAP > 全连接。文章认为GAP不如全连接+Dropout原因是传统CNN使用的是GLM,提取特征的抽象度不够。因为NIN使用了MLP,MLP比GLM好,所以MLP要和GAP配合使用,才能达到更好的性能。
  最后,在CIFAR-10数据集上,文章还将最后一层MLP的输出进行了可视化:
  Network-in-Network论文阅读笔记_第7张图片
  最后一层MLP输出的feature map通道数为10,每一层feature map对应一个类。可以发现,当某一层的feature map比较亮时,说明该层神经元对输入的图像反馈最活跃,因此就预测输入图像属于这一层feature map对应的类。此外,还可以看到,feature map中比较亮的区域恰巧是输入图像中目标物体比较关键的位置(飞机、汽车主体的位置;猫、狗的头部等等),因此相比全连接,采用GAP能够更合理地解释CNN是如何工作的(其实和人眼的机制差不多,都是抓住图像中主体元素的关键部位)。如果利用这种特性,CNN可以进行目标检测。

5 Conclusions

    没啥好说的了。

你可能感兴趣的:(网络结构论文阅读)