是什么
intro
- LeNet→AlexNet→VGG→NiN→GoogLeNet→ResNet
- LeNet→AlexNet→VGG
- 卷积层模块充分抽取空间特征
- 全连接层输出分类结果
- AlexNet & VGG 改进在于把两个模块加宽 、加深(加宽指增加通道数,那加深呢?(层数增加叭
- NiN:串联(多个卷积层和”全连接层“构成的小网络)来构建一个深层网络
网络架构截自原文
input:224 \times 224 \times 3
(说实话,我真的很好奇,它的网络结构,输入,操作,到输出,但既然很多资料都没写,那也许就是不重要叭,大概了解就好了。
如图,是一个NIN的结构,包括3个mplconv层 + 1个全局平均池化层,一个mplconv中是一个3层的感知机(1卷积层+2个全连接层) 作者表示,mpl中感知机层数是可以调整的,同样mlpconv层作为一个微型网络结构,也可以被用在卷积层之间,个数随需调整。
上图的网络架构:
- NiN = 3 \times mplconv层 + 1 \times GAP全局池化层
- 1个mplconv层 = 1个微型神经网络 ∴ NiN(网络中的网络)
- 1个mplconv层 内部由多层感知机实现 = (1个conv + 2个fc层)
- mpl感知机的层数是可以调整的
- mlpconv代替了传统的卷积层
- GAP代替了传统CNN模型中末尾的全连接层
经典网络结构(三):NiN (network in network)
- NiN 块是 NiN 中的基础块
- NIN块=1个卷积层+2个1×1的卷积层
- 串联而成
- 每一次卷积之后都会进行非线性激活
- 第一个卷积层的超参数可以自行设置
- 第二个和第三个卷积层的超参数是固定的
- NIN块=1个卷积层+2个1×1的卷积层
- NIN
- 卷积窗口(有AlexNet的影子)
- 卷积窗口形状为11×11、5×5、3×3的卷积层、输出通道数与AlexNet一致
- 每个NIN块后接一个stride=2 pool_size=3×3的最大池化层
- 去掉了AlexNet最后的3个全连接层
- 使用了输出通道数=标签类别数的NIN块
- GAP对每个通道中的元素求平均并直接用于分类 (GAP 全局平均池化 Global Average Pooling)
- 卷积窗口(有AlexNet的影子)
为什么
公式吧推导,代码吧,可能
怎么实现
是谁
2014年新加坡国立大学(颜水成)
Pytorch之经典神经网络CNN(六)——NiN(Fashion-MNIST)(全局平均池化GAP)(1*1卷积)(mlpconv)(k-fold validation)
在哪儿
2014年ICLR的一篇paper
啥时候
2014年
评价(优点、缺点)
【深度学习】NIN (Network in Network) 网络
改进1
- 提供了网络层间映射的一种新可能
- 增加了网络卷积层的非线性能力
改进2
假设分类任务有C个类别。
先前CNN中最后一层为特征图层数(共计N)的全连接层,要映射到C个类别上;
改成全局池化层,最后一层特征图层数(共计C)的全局池化层,恰好对应分类任务的C个类别。
GAP优点
- 传统CNN结构,卷积以后全连接层,经过softmax输出分类,最后的全连接层有过拟合的风险
- GAP
- 最后的特征图层数 = 输出类别数
- 没有全连接层,需要学习的参数大大减少,避免了FC层过拟合的发生
Summary 两个要点
- mlpconv = MLP(11的conv) + 2Conv 增加非线性变换,更好的学习局部特征
- GAP 全局平均池化 防止过拟合