CNN模型之NIN

一、介绍

        NIN网络是由Min Lin等人在2014年提出的一个网络嵌套模型,使用微神经网络替换卷积神经网络中的卷积核。通过微神经网络来抽象感受野内的数据。称这种微神经网络结构为mplconv。这篇论文的创新之处主要体现在两个地方,分别是:

  1. 使用微神经网络替换传统卷积神经网络的卷积核。
  2. 使用全局平均池化替代全连接层。
    CNN模型之NIN_第1张图片

        微神经网络是由多层感知机实现的,上图中(a)图是传统的通过卷积核窗口在输入数据上滑动,对感受野内的数据进行抽象化。这种方式是线性的。(b)中就是论文提出的微神经网络。这是一种非线性的方式。通过实验,这种方法可以更好的抽象数据的特征。

二、模型结构

CNN模型之NIN_第2张图片
        NIN网络中包括三个mplconv层和一个平均池化层的叠加。

  • 第一个mplconv: 5 × 5 5\times5 5×5conv(ReLU) + 1 × 1 1\times1 1×1conv(ReLU) + 1 × 1 1\times1 1×1conv(ReLU+MaxPool+Droput)
  • 第二个mplconv: 5 × 5 5\times5 5×5conv(ReLU) + 1 × 1 1\times1 1×1conv(ReLU) + 1 × 1 1\times1 1×1conv(ReLU+AvgPool+Droput)
  • 第三个mplconv: 3 × 3 3\times3 3×3conv(ReLU) + 1 × 1 1\times1 1×1conv(ReLU) + 1 × 1 1\times1 1×1conv(ReLU)
  • 平均池化层:通过平均池化得到的结果输入softmax中。

        从网络的结构中,我们可以注意到MPL的实现是通过 1 × 1 1\times 1 1×1的卷积核实现, 1 × 1 1\times 1 1×1的卷积核可以实现跨通道的交互和信息融合,可以对通道数进行降维和升维。在之后的ResNet、GoogLeNet网络中也用到。另外一个改进是全局平均池化代替全连接层。我们都知道全连接层参数多且容易发生过拟合。通过mplconv最后一层让每一类对应一个特征图。然后使用平均池化进行运算,在输入到softmax中得到最后的分类结果。并且全局平均池化也起到了正则化的作用。实验结果如下:
CNN模型之NIN_第3张图片

三、总结

        NIN网络可以总结为两个方面的改进,一是使用微神经网络代替卷积核,二是使用全局平均池化代替全连接层。经过在cifar-10数据上实验,此网络的结果要好于当前的最好模型。在看这个网络时, 我也看了很多其他的网络,也听说过这个网络。当我读完论文之后,确实给我拓宽了思路,原来这块也可以更改。同样可以达到更好的结果。因此。我的感悟还是要见多识广。学习别人的思路。

友情链接:
代码实现:https://github.com/guoyuantao/CNN_Model/tree/master/CNN_on_cifar_ByPytorch
联系方式:2391855138(加好友请备注)

你可能感兴趣的:(CNN模型)