经典模型——NiN&GoogLeNet

文章目录

NiN

全连接层的问题:包含大量的参数。很容易过拟合。

通常是 输 入 通 道 数 × 图 像 尺 寸 × 输 出 尺 度 输入通道数\times 图像尺寸\times 输出尺度 ××

NiN的思想是:完全不要全连接层;

一个NiN块:
请添加图片描述

卷积层之后跟两个1x1的卷积,步幅为1,无填充,输出形状和卷积层输出一样。起到了全连接层的作用(按照逐一像素)。

NiN的架构:

  1. 无全连接层;
  2. 交替使用NiN块和步幅为2的最大池化层(逐步减小高宽和增大通道数);
  3. 最后使用全局平均池化层得到输出(输入通道数是类别数);

如果我们要得到1000类的话,最后就有1000个通道,每个做全局平均池化得到这一通道对应类的置信度。

总结:

  1. NiN块使用卷积层+2个1x1卷积层,后者对每个像素增加了非线性;
  2. 全局平均池化代替VGG和AlexNet的全连接层,参数个数少,不容易过拟合。

请添加图片描述
参数用了Alex那一套,不过加了一些1x1的卷积。

GoogleNet

怎么选择最好的超参数?
卷积核、池化方式、通道数?

Inception块:每种卷积都要,最后concatenation(高宽不变,通道数连接)。

请添加图片描述
可以看到,白色块的作用都是通过改变通道数来降低模型复杂度(也就是参数量)。蓝色块的作用是抽取信息。

先降后增的设计思路是bottleneck的感觉。

Inception块相比单独的3x3或5x5卷积相比,其有更少的参数个数和计算复杂度。

同时Inception块还增加了其中学习得到的信息的多样性。

请添加图片描述
Stage1和Stage2和VGG一致。GoogleNet用了很多NiN的思想,大量地使用1x1卷积减少参数量。

请添加图片描述
相比于AlexNet,GoogleNet的卷积核是比较小的,这使得空间信息不会被很快压缩,支撑后续通道数增加时的信息学习。

同时,空间信息被压缩,我认为也是为了增加通道数的无奈之举,目的是为了减少参数量。

请添加图片描述
第三阶段,可以看到通道数还是在增加的,但是每一个Inception块的参数都不一样。值得一提的是,3x3卷积永远是被分配地最多的,这是因为它参数量不大,提取信息的效果也还行。

Inception块后续有很多变种,V2加入了BN、V3修改了卷积尺寸、V4加入了残差连接。

猜你喜欢

转载自blog.csdn.net/weixin_46365033/article/details/125460173
NIN