NiN模型(Network in Network)2014
1.NiN的两个创新点
① MLP-Conv。 引入NiN块(由一个CNN层和两个1x1卷积层组成的块),增加局部视野下神经元的非线性拟合能力。
②Global Average Pooling 引入全局平均池化层代替卷积层后面的全连接层,减少参数数量。
解释:
对①的解释:
解决的问题: 传统的CNN网络中卷积层的卷积核是线性滤波器。 抽象能力低,当特征是高度非线性的时,往往会选择各种各样的滤波器来提取尽可能多的各样的特征,这样就会最大可能的提取到我们想要的特征,但是这样会导致网络结构复杂、参数量增大。
故对传统的CNN网络 ,如VGG、AlexNet等,提出了减少参数量且增加模型非线性拟合能力的方法:在每个卷积层之间加入两层 “全连接层”(用1X1卷积核代替)。
ps:做1X1卷积就相当于一层全连接,且参数量只有1x1xk个,相较于全连接参数大大减少。
对②的解释:
解决的问题: 如VGG、AlexNet网络,网络的参数量主要集中在最后的全连接层。
故提出了用全局平均池化代替全连接层减少参数量,避免模型过拟合。
2.NiN的架构
NiN块:
NiN网络架构:
架构:
- NiN块:一个卷积层后面跟两个“全连接层”(1x1卷积,步幅为1,无padding),目的:增加非线性。
- 交替使用NiN块以及步长为2的max pooling层。 逐步减少feature map的高宽并增大通道数。
- 无全连接层。使用全局平均池化代替全连接,输出通道数等于预测的类别数。如100分类问题中,【100,h,w】 则最终得到的是shape是【100,1,1】 (c,h,w).
- 最后再经过一层softmax。
注:
- 通用的函数近似/逼近器:径向基函数网络(RBF)、多层感知机(MLP)
1x1卷积核的作用:
- 降维或者升维
- 跨通道信息交融
- 减少参数量
- 增加模型深度
- 提高非线性表达能力
下图中倒数第二层为全局均值池化、最后一层为softmax层,将GAP输出的每个数值(每个通道的均值)乘上各自的wi,得到一个类别的输出。此外这样操作还反应每一个类别对于不同通道的关注程度!如下图2
图1
图2