《Network in network》理解

论文连接
这是一篇2014年发的论文,时间比较早,不过创新点比较有意义,它对传统的CNN+FC结构的分类网络进行两方面的改进:
1.提出 MLP convolution layers
2.用 global average pooling +1x1卷积 的结构代替全连接
第2点大大减少了卷积分类网络的参数 ~

下面细说一下两点改进的优势:
1.MLP conv 提取更加抽象的特征
CNN提取特征一般经过卷积/池化/激活三个步骤。其中,CNN卷积filter是一种广义线性模型(GLM),仅仅是将输入(局部感受野中的元素)进行线性组合,因此其抽象能力是比较低的。
为了提取更抽象的深层特征,提出用多层感知机(Muti-layer perception)对输入(局部感受野中的元素)进行更加复杂的运算,提高抽象表达能力。

mlpconv层实际上是conv+mlp(多层感知器),因为convolution是线性的,而mlp是非线性的,后者能够得到更高的抽象,泛化能力更强。在跨通道(cross channel,cross feature map)情况下,mlpconv等价于 卷积层+1×1卷积层,所以此时mlpconv层也叫cccp层(cascaded cross channel parametric pooling)。


线性卷积和mlpconv的比较

2.GAP 减少参数,避免过拟合
CNN分类网络用 CNN提特征+FC分类 的结构,在最后几层全连接对特征进行组合分类,需要引入非常多的参数,会引起网络的过拟合。这里采用对每一个类别生成对应的特征图(需要分10个类,就生成10个对应的fearture map),并对每一个特征图求平均,得到每个类的平均值的加权和(实际中是gap后进行1v1卷积操作,作为softmax层的输入),输入softmax函数做分类。GAP不像FC有很多参数要优化,这样就缓解了过拟合的问题。并且GAP可以和CNN兼容,通过反向传播来直接优化网络。


NIN网络

1v1卷积核的作用:
对于单通道输入,1v1卷积核仅仅是将每个元素进行缩放,对特征来说没有意义。
不过卷积网络的输入(上一层的feature map)一般都是多通道的,在这里1*1卷积核的作用非常强大:
(1)融合多个通道的特征。
(2)对通道数进行降维/升维。
通过1v1卷积核的作用之后,feature map的长宽不变,但是通道数会改变(使用多少个1v1卷积核就输出多少通道数的feature)。
在GAP之前,要生成对应类别数的feature map,就要先用1v1卷积核进行卷积(10个类,就用10个1v1卷积核,这里有10个weight参数+10个bias参数)得到对应类别的特征图。

参考:
(Paper)Network in Network网络分析
Network in Network学习笔记

你可能感兴趣的:(《Network in network》理解)