论文《Network in Network》笔记

论文:Lin M, Chen Q, Yan S. Network In Network[J]. Computer Science, 2013.

参考:关于CNN中1×1卷积核和Network in Network的理解

参考: 深度学习(二十六)Network In Network学习笔记

1. 1×1 convolutions

作用:1×1卷积核可以起到一个跨通道聚合的作用所以进一步可以起到降维(或者升维)的作用,起到减少参数的目的。 比如当前层为 x*x*m即图像大小为x*x,特征层数为m,然后如果将其通过1×1的卷积核,特征层数为n,那么只要n<m这样就能起到降维的目的,减少之后步骤的运算量(当然这里不太严谨,需要考虑1×1卷积核本身的参数个数为m×n个)。换句话说,如果使用1x1的卷积核,这个操作实现的就是多个feature map的线性组合,可以实现feature map在通道个数上的变化。 而因为卷积操作本身就可以做到各个通道的重新聚合的作用,所以1×1的卷积核也能达到这个效果。

2. MLP卷积层

一般来说,如果我们要提取的一些潜在的特征是线性可分的话,那么对于线性的卷积运算来说这是足够了。然而一般来说我们所要提取的特征一般是高度非线性的。在传统的CNN中,也许我们可以用超完备的滤波器,来提取各种潜在的特征。比如我们要提取某个特征,于是就用了一大堆的滤波器,把所有可能的提取出来,这样就可以把想要提取的特征也覆盖到,然而这样存在一个缺点,那就是网络太恐怖了,参数太多了。

CNN高层特征其实是低层特征通过某种运算的组合。于是作者就根据这个想法,提出在每个局部感受野中进行更加复杂的运算,提出了对卷积层的改进算法:MLP卷积层。MLP层可以看成是每个卷积的局部感受野中还包含了一个微型的多层网络

3. Maxout层

原先为:

现在为:

3. 全局均值池化

传统的卷积神经网络卷积运算一般是出现在低层网络。对于分类问题,最后一个卷积层的特征图通过量化然后与全连接层连接,最后在接一个softmax逻辑回归分类层。这种网络结构,使得卷积层和传统的神经网络层连接在一起。我们可以把卷积层看做是特征提取器,然后得到的特征再用传统的神经网络进行分类。

然而,全连接层因为参数个数太多,往往容易出现过拟合的现象,导致网络的泛化能力不尽人意。于是Hinton采用了Dropout的方法,来提高网络的泛化能力。

本文提出采用全局均值池化的方法,替代传统CNN中的全连接层。与传统的全连接层不同,我们对每个特征图一整张图片进行全局均值池化,这样每张特征图都可以得到一个输出。这样采用均值池化,连参数都省了,可以大大减小网络,避免过拟合,另一方面它有一个特点,每张特征图相当于一个输出特征,然后这个特征就表示了我们输出类的特征。这样如果我们在做1000个分类任务的时候,我们网络在设计的时候,最后一层的特征图个数就要选择1000。

posted @ 2018-04-13 20:54  天涯惟笑  阅读(1900)  评论(0编辑  收藏  举报