CNN发展简史——GoogLeNet(四)

简介
GoogLeNet是2014年 ILSVRC 冠军模型,top-5 错误率 6.7% ,GoogLeNet做了更大胆的网络上的尝试而不像vgg继承了lenet以及alexnet的一些框架,该模型虽然有22层,但参数量只有AlexNet的1/12。
原论文地址:https://arxiv.org/pdf/1409.4842.pdf

(-2014-)GoogLeNet:
GoogLeNet论文指出获得高质量模型最保险的做法就是增加模型的深度(层数)或者是其宽度(层核或者神经元数),但是一般情况下更深或更宽的网络会出现以下问题:

  1. 参数太多,容易过拟合;
  2. 网络越大计算复杂度越大,难以应用;
  3. 网络越深,梯度越往后穿越容易消失,难以优化模型。

解决这些问题的方法当然就是在增加网络深度和宽度的同时减少参数,为了减少参数,自然就想到将全连接变成稀疏连接。但是在实现上,全连接变成稀疏连接后实际计算量并不会有质的提升,因为大部分硬件是针对密集矩阵计算优化的,稀疏矩阵虽然数据量少,但是计算所消耗的时间却很难减少。
那么,有没有一种方法既能保持网络结构的稀疏性,又能利用密集矩阵的高计算性能。大量的文献表明可以将稀疏矩阵聚类为较为密集的子矩阵来提高计算性能,就如人类的大脑是可以看做是神经元的重复堆积。

因此,GoogLeNet团队提出了Inception网络结构,就是构造一种“基础神经元”结构,来搭建一个稀疏性、高计算性能的网络结构。
Inception naive结构如下:
在这里插入图片描述
下图更加直观:
在这里插入图片描述

  1. Inception 模块会并行计算同一输入映射上的多个不同变换,并将它们的结果都连接到单一一个输出。换句话说,对于每一个层,Inception 都会执行 5×5 卷积变换、3×3 卷积变换和最大池化。然后该模型的下一层会决定是否以及怎样使用各个信息。
  2. Inception可以看做是在水平方向上加深了网络。

这种模型架构的信息密度更大了,这就带来了一个突出的问题:计算成本大大增加。不仅大型(比如 5×5)卷积过滤器的固有计算成本高,并排堆叠多个不同的过滤器更会极大增加每一层的特征映射的数量。而这种计算成本增长就成为了我们模型的致命瓶颈。

改进方法之Inception v1:
在这里插入图片描述
使用了1×1卷积:

  1. 降维。(比如,一张500×500 depth为100 的图片在20个filter上做1×1的卷积,那么结果的大小为500×500×20)
  2. 加入非线性。(卷积层之后经过激励层,1×1的卷积在前一层的学习表示上添加了非线性激励,提升网络的表达能力)

网络结构:
GoogLeNet 由 9 组 inception 模块线性堆叠组成。深 22 层(如算上池化层共 27 层)。
在这里插入图片描述
为防止网络中间部分不会「梯度消失」,作者引入了 2 个辅助分类器,它们本质上对 2 个 inception 模块的输出执行 softmax,并计算对同一个标签的 1 个辅助损失值。
在这里插入图片描述
在这里插入图片描述辅助损失值纯粹是为训练构建,分类推断时将被忽略。辅助分类器促进了更稳定的学习和更好的收敛。辅助分类器往往在接近训练结束时,辅助分支网络开始超越没有任何分支的网络的准确性,达到了更高的稳定水平。

维度计算:
在这里插入图片描述

拓展:
Inception v2 、Inception v3 出自同一篇论文《Rethinking the Inception Architecture for Computer Vision》
一、Inception v2
问题:

  • 减少特征的表征性瓶颈。直观上来说,当卷积不会大幅度改变输入维度时,神经网络可能会执行地更好。过多地减少维度可能会造成信息的损失,这也称为「表征性瓶颈」。
  • 使用更优秀的因子分解方法,卷积才能在计算复杂度上更加高效。

解决方案:
先将 5×5 的卷积分解为两个 3×3 的卷积运算以提升计算速度。
在这里插入图片描述
此外,作者将 n×n 的卷积核尺寸分解为 1×n 和 n×1 两个卷积。例如,一个 3×3 的卷积等价于首先执行一个 1×3 的卷积再执行一个 3×1 的卷积。
在这里插入图片描述
模块中的滤波器组被扩展(即变得更宽而不是更深),以解决表征性瓶颈。如果该模块没有被拓展宽度,而是变得更深,那么维度会过多减少,造成信息损失。

二、Inception v3:
问题:

  • 作者注意到辅助分类器直到训练过程快结束时才有较多贡献,那时准确率接近饱和。作者认为辅助分类器的功能是正则化,尤其是它们具备 BatchNorm 或 Dropout 操作时。
  • 是否能够改进 Inception v2 而无需大幅更改模块仍需要调查。

解决方案:
Inception Net v3 整合了前面 Inception v2 中提到的所有升级,还使用了:

  • RMSProp 优化器;
  • Factorized 7x7 卷积;
  • 辅助分类器使用了 BatchNorm;
  • 标签平滑(添加到损失公式的一种正则化项,旨在阻止网络对某一类别过分自信,即阻止过拟合)。

系列传送门:
CNN发展简史——LeNet(一)
CNN发展简史——AlexNet(二)
CNN发展简史——VGG(三)
CNN发展简史——ResNet(五)
CNN发展简史——DenseNet(六)

猜你喜欢

转载自blog.csdn.net/qq_42823043/article/details/89679220