-
接上一篇 VGG实现mnist手写识别
-
使用NIN经典模型实现相同的功能
-
今天介绍的是NIN(NetworkInNetwork)
-
原文地址传送门
-
正在考虑找个时间把论文翻一下,有同样想法的小伙伴吗,一起搞事情
-
这个模型有两个创新点:
- 1、使用MLP Convolution layers
- 经典的神经网络模型是堆叠卷积层和池化层,由卷积层线性生成features map 然后通过激活函数完成非线性映射.
- 公式和示意图如下:
- 解释一下上图公式中各个变量的含义(i,j)是features map 的像素索引,X(i,j)表示输入像素单元的索引的中心,k表示features map 的索引
- 当潜在特征线性可分时,这种线性卷积足可以抽象,但是想要得到更好的抽象,需要用更加通用的函数来提取特征,这样可以尽可能的逼近潜在特征的表现形式.
- 在传统的CNN中可以通过一套完整的滤波器来涵盖同一特征的所有变体,但是同一特征使用太多的滤波器,将会给下一层带来额外的负担
- 使用一个通用函数逼近器做局部特征的特征提取,因为它能逼近潜在特征的更多抽象表示.
- 在这里有两个选择一个是径向基(Radial basis network)和多层感知器(multilayer perceptron),使用多层感知机有两个原因:首先是因为多层感知机与神经网络结构兼容,可以使用反向传播进行训练,第二是多层感知机可以是很深的模型
- 使用MLP代替了GLM,形成MLPConv层
- 下图是MLPConv计算公式和示意图:
- 1、使用MLP Convolution layers
-
- 当时作者使用1X1卷积核,具有里程碑式的意义,之后的模型都开始关注1X1的卷积核.
-
2 、(GAP)Global Average Pooling
- 传统卷积神经网络在网络的浅层进行卷积提取特征,将由最后一个卷积层得到的features map 输入到 全连接层,然后由全连接层完成分类任务
- 但是全连接层参数过多,容易产生过拟合,从而阻碍了模型的泛化能力,作者提出了一种叫做全局平均池化层,由他代替CNN中的全连接层.
- GAP相比较全连接层的优点:
PyTorch ------NIN(NetworkInNetwork)卷积神经网络实现mnist手写体识别
本文介绍了如何使用PyTorch实现NIN(Network In Network)模型进行MNIST手写体识别,强调了NIN的两个创新点:MLP卷积层和全局平均池化(GAP)。NIN用MLP(Conv)替换传统卷积层,减少参数并提高特征抽象能力,而GAP层取代全连接层,减少过拟合,提高模型泛化能力。
摘要由CSDN通过智能技术生成