GoogleNet论文笔记/小结

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/haluoluo211/article/details/81710799

GoogLeNet和VGG是2014年ImageNet挑战赛(ILSVRC14)的双雄,GoogLeNet获得了第一名、VGG获得了第二名。

本文主要内容如下:

  1. GoogLeNet分析了现有提升网络精度的常见办法及缺点
  2. GoogLeNet解决上面问题的办法,Inception基本原理,以及为什么想到使用Inception。
  3. 为什么不叫“GoogleNet”,而叫“GoogLeNet”
  4. GoogLeNet网络结构以及辅助loss函数
  5. 简单介绍了下:Inception v2 、Inception v3以及Inception v4 和 Inception-ResNet

1 GoogLeNet分析了现有提升网络精度的常见办法及缺点

GoogLeNet首先分析了,现有提升网络识别(分类)的精度的常见办法,及其缺点:

  1. 使用更深的网络,但是这会导致参数太多,如果训练数据集有限,很容易产生过拟合;
  2. 创建数据集的代价很大,尤其是如果数据集分类很麻烦的情况下;
  3. 网络越深,容易出现梯度弥散问题(梯度越往后穿越容易消失),难以优化模型。

2 GoogLeNet解决上面问题的办法

解决这些问题的方法当然就是在增加网络深度和宽度的同时减少参数,为了减少参数,自然就想到将全连接变成稀疏连接。但是在实现上,全连接变成稀疏连接后实际计算量并不会有质的提升,因为大部分硬件是针对密集矩阵计算优化的,稀疏矩阵虽然数据量少,但是计算所消耗的时间却很难减少。

那么,有没有一种方法既能保持网络结构的稀疏性,又能利用密集矩阵的高计算性能。大量的文献表明可以将稀疏矩阵聚类为较为密集的子矩阵来提高计算性能,就如人类的大脑是可以看做是神经元的重复堆积,因此,GoogLeNet团队提出了Inception网络结构,就是构造一种“基础神经元”结构,来搭建一个稀疏性、高计算性能的网络结构。

2.1 Inception

Inception naive结构如下:

下图看的更加直观点:

Inception 模块的作用:

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

下面给出一个实际的示例理解上面的Inception 模块。对于下图中的狗,在每张图片中大小不一样,特征尺度变化也很大。

  1. 由于特征尺度变化特别大,卷积操作选择适当的核尺寸变得较为困难。特征尺度较大的比较适合于较大的核,而特征尺度小的适合较小的核。
  2. 简单的加深网络,容易造成梯度发散,而且计算量会变大。

那为什么不能在同一层上采用多个尺寸的过滤器,使得网络本质上会变得更宽一些,而不是更深。作者设计 inception 模块就是用了这个想法。

2.3 naive Inception缺点

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

2.4 改进方法之Inception v1

Inception v1的网络结构如下图:

使用1*1卷积的作用:

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

3. GoogLeNet名称缘由

GoogLeNet是谷歌(Google)研究出来的深度网络结构,为什么不叫“GoogleNet”,而叫“GoogLeNet”,论文说是为了向“LeNet”致敬,因此取名为“GoogLeNet”。论文原话:

We chose GoogLeNet as our team-name in the ILSVRC14 competition. This name is an homage to Yann LeCuns pioneering LeNet 5 network [10].


4. GoogLeNet网络结构以及辅助loss函数

4.1 GoogLeNet结构

GoogLeNet 由 9 组 inception 模块线性堆叠组成。深 22 层(如算上池化层共 27 层)。

4.2 辅助loss函数

为防止网络中间部分不会「梯度消失」,作者引入了 2 个辅助分类器,它们本质上对 2 个 inception 模块的输出执行 softmax,并计算对同一个标签的 1 个辅助损失值。

辅助损失值纯粹是为训练构建,分类推断时将被忽略。辅助分类器促进了更稳定的学习和更好的收敛。辅助分类器往往在接近训练结束时,辅助分支网络开始超越没有任何分支的网络的准确性,达到了更高的稳定水平。

接下来简要简绍下:

5. Inception v2 、Inception v3

Inception v2 、Inception v3 在同一篇论文《Rethinking the Inception Architecture for Computer Vision》

该论文主要内容如下:

  1. 给出了网络设计的通用准则
  2. 将大的卷积核分解为小的卷积核

卷积分解(Factorizing Convolutions)

大尺寸的卷积核可以带来更大的感受野,但也意味着会产生更多的参数,比如5x5卷积核的参数有25个,3x3卷积核的参数有9个,前者是后者的25/9=2.78倍。因此,GoogLeNet团队提出可以用2个连续的3x3卷积层组成的小网络来代替单个的5x5卷积层,即在保持感受野范围的同时又减少了参数量,如下图:

任意nxn的卷积都可以通过1xn卷积后接nx1卷积来替代。GoogLeNet团队发现在网络的前期使用这种分解效果并不好,在中度大小的特征图(feature map)上使用效果才会更好(特征图大小建议在12到20之间)

Inception Net v3 包含了针对 Inception v2 所述的所有升级,并且增加使用了以下内容:

  1. RMSProp 优化器。
  2. 分解为 7x7 卷积。
  3. 辅助分类 BatchNorm。
  4. 标签平滑(添加到损失公式中的正则化组件类型,防止网络过于准确,防止过度拟合。)

6. Inception v4 和 Inception-ResNet

Inception v4 和 Inception-ResNet 在同一篇论文《Inception-v4, Inception-ResNet and the Impact of Residual Connections on Learning》

Inception V4研究了Inception模块与残差连接的结合。ResNet结构大大地加深了网络深度,还极大地提升了训练速度,同时性能也有提升。

Inception V4主要利用残差连接(Residual Connection)来改进V3结构,得到Inception-ResNet-v1,Inception-ResNet-v2,Inception-v4网络。下图左为ResNet的残差结构,右图为ResNet残差结构与Inception相结合。

注:

在实际工作中做图片分类时,我们一般使用GoogleNet Inception v2.

参考:

https://my.oschina.net/u/876354/blog/1637819 https://towardsdatascience.com/a-simple-guide-to-the-versions-of-the-inception-network-7fc52b863202 https://stats.stackexchange.com/a/274623/212628 https://www.leiphone.com/news/201806/sUuRFBdicUF4MfxX.html

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏杂七杂八

梯度下降

梯度下降(Gradient Descent)是在求解机器学习算法的模型参数(无约束优化问题)时,最常采用的方法之一 代价函数 提到梯度下降就不得不说一下代价函...

3085
来自专栏人工智能

从AlexNet到残差网络,理解卷积神经网络的不同架构

导读: 卷积神经网络对视觉识别任务很有帮助。优秀的卷积神经网络具有数百万个参数和大量隐藏层。事实上,一个错误的经验法则是:「隐藏层的数量越多,卷积神经网络越好」...

2157
来自专栏机器学习算法与理论

深度学习核心技术实战——图像分类模型

1.LeNet-5: 每一个卷积核都会形成一个特征图,3个通道则是每个通道是不同的卷积核,但是最后是将三通道的卷积值相加,最后变成一个通道,所以5564的卷积核...

881
来自专栏AI科技大本营的专栏

深度概览卷积神经网络全景图,没有比这更全的了

【AI科技大本营导读】深度卷积神经网络是这一波 AI 浪潮背后的大功臣。虽然很多人可能都已经听说过这个名词,但是对于这个领域的相关从业者或者科研学者来说,浅显的...

1492
来自专栏人工智能LeadAI

逻辑回归(LR)个人学习总结篇

线性模型LR(没有考虑特征间的关联)——>LR +多项式模型(特征组合,不适用于特征稀疏场景,泛化能力弱)——>FM(适用于稀疏特征场景*,泛化能力强)——>F...

7583
来自专栏大数据挖掘DT机器学习

规则化和模型选择(Regularization and model selection)

1 问题 模型选择问题:对于一个学习问题,可以有多种模型选择。比如要拟合一组样本点,可以使用线性回归 ? ,也可以用多项式回归 ? 。那么使用哪种模型...

3597
来自专栏机器之心

CVPR 2018 | 中国科学院大学Oral论文:使用鉴别性特征实现零样本识别

选自arXiv 机器之心编译 参与:Panda 在将于今年六月举办的 CVPR 2018 会议上,中国科学院大学、英国邓迪大学和中国科学院脑科学与智能技术卓越创...

3959
来自专栏汪铖杰的专栏

一篇文章搞懂人脸识别的十个概念

笔者整理了一些常见人脸技术的基本概念,主要用于帮助非基础研究读者对人脸相关技术有一个更深入的了解,方便后续的交流与合作。

6K3
来自专栏技术随笔

[译] 纹理网络:在前馈网络中进行纹理合成与风格化

4346
来自专栏AI科技大本营的专栏

何恺明、吴育昕最新成果:用组归一化替代批归一化

编译 | 阿司匹林 AI科技大本营按:近日,FAIR 团队的吴育昕和何恺明提出了组归一化(Group Normalization,简称 GN)的方法。其中,GN...

3685

扫码关注云+社区

领取腾讯云代金券