【pytorch学习笔记】pytorch 搭建NIN网络+Fashion-Mnist数据集

目录

NIN网络

pytorch 搭建NIN网络

参考


NIN网络

论文《Network In Network》

在传统的CNN模型中,卷积层通过filter进行卷积操作,再使用非线性激活函数进行处理,产生特征映射(feature mapping)。其中,高层卷积层提取到的feature mapping是在底层卷积层提取到的feature mapping的基础上进行再提取得到的,所以如果提高每个卷积层的特征提取能力,那么对于整体的特征能力来说也会有一定提升。

CNN的卷积层可以看作是一个广义的线性模型(GLM, Generalized Linear Model)。当特征是线性可分时,卷积层可以表现出很好的提取性能,然而输入数据的特征往往是高度非线性的,此时卷积层并不能表现出很好的特征提取能力。这个问题在传统CNN中可以通过增加卷积层中的filter数量来进行补偿,但是增加filter数量会为一下层带来负担。那么考虑使用一个功能更强大的非线性函数逼近器(nonlinear function approximator)去替代GLM就可以提高模型的特征提取能力。
 

【pytorch学习笔记】pytorch 搭建NIN网络+Fashion-Mnist数据集_第1张图片

 NiN的创新点有两个:

  1. 使用Mlpconv替代卷积中的filter去提取特征;
  2. 使用全局平均池化层代替全连接层

使用Mlpconv替代卷积中的filter去提取特征

【pytorch学习笔记】pytorch 搭建NIN网络+Fashion-Mnist数据集_第2张图片

Mlponv结构是将多层感知机(MLP)和卷积(CONV)结合在一起,即在传统的卷积层之间加上了MLP层。NiN使⽤窗口形状为 11 × 115 × 5 和 3 × 3的卷积层,输出通道数量与 AlexNet 中的相同。每个 NiN 块后有⼀个最⼤汇聚层,池化窗口形状为 3 × 3,步幅为 2

使用全局平均池化层代替全连接层(GAP,Global Average Pooling

GAP的具体操作为:将最后一层卷积层得到的特征向量的每个通道的平均值作为输入直接送入softmax logistic regression layer。

GAP与FC的相同点是两者都对特征向量进行了一定的线性组合,不同点在于两者进行线性组合的变换矩阵不同。相比于FC,GAP有如下优势:

  1. GAP提高了CNN的可解释性,FC层作为一个黑盒,使得传统CNN的可解释性较差;
  2. GAP没有需要进行优化的参数,减少了模型整理的参数数量,减少了模型的过拟合问题;
  3. GAP是对特征向量的每个通道求平均数,这提高了模型对输入的空间平移问题更具鲁棒性。

总结:

  • NiN使⽤由⼀个卷积层和多个 1 × 1 卷积层组成的块。该块可以在卷积神经⽹络中使⽤,以允许更多的每像素⾮线性。
  • NiN去除了容易造成过拟合的全连接层,将它们替换为全局平均汇聚层(即在所有位置上进⾏求和)。该汇聚层通道数量为所需的输出数量
  • 移除全连接层可减少过拟合,同时显著减少NiN的参数。
  • NiN的设计影响了许多后续卷积神经⽹络的设计。

pytorch 搭建NIN网络

挖个坑

参考

(41条消息) NIN详解_今生有幸.~的博客-CSDN博客

李沐 《动手学深度学习》

你可能感兴趣的:(pytorch,动手学深度学习,pytorch,学习,深度学习)