深度学习经典网络:GoogleNet-CSDN博客

阿里云国内75折 回扣 微信号:monov8
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6

深度学习经典网络--GoogleNet

GoogLeNet是google推出的基于Inception模块的深度神经网络模型在2014年的ImageNet竞赛中夺得了冠军在随后的两年中一直在改进形成了Inception V2、Inception V3、Inception V4等版本。我们会用一系列文章分别对这些模型做介绍。本篇文章先介绍最早版本的GoogLeNet。

论文名称Going deeper with convolutions

1、为什么要提出Inception

一般来说提升网络性能最直接的办法就是增加网络深度和宽度但一味地增加会带来诸多问题
1参数太多如果训练数据集有限很容易产生过拟合
2网络越大、参数越多计算复杂度越大难以应用
3网络越深容易出现梯度弥散问题梯度越往后穿越容易消失难以优化模型。
我们希望在增加网络深度和宽度的同时减少参数为了减少参数自然就想到将全连接变成稀疏连接。但是在实现上全连接变成稀疏连接后实际计算量并不会有质的提升因为大部分硬件是针对密集矩阵计算优化的稀疏矩阵虽然数据量少但是计算所消耗的时间却很难减少。在这种需求和形势下Google研究人员提出了Inception的方法。

2、为什么是Inception

Inception就是把多个卷积或池化操作放在一起组装成一个网络模块设计神经网络时以模块为单位去组装整个网络结构。模块如下图所示
在这里插入图片描述
在未使用这种方式的网络里我们一层往往只使用一种操作比如卷积或者池化而且卷积操作的卷积核尺寸也是固定大小的。但是在实际情况下在不同尺度的图片里需要不同大小的卷积核这样才能使性能最好或者或对于同一张图片不同尺寸的卷积核的表现效果是不一样的因为他们的感受野不同。所以我们希望让网络自己去选择Inception便能够满足这样的需求一个Inception模块中并列提供多种卷积核的操作网络在训练的过程中通过调节参数自己去选择使用同时由于网络中都需要池化操作所以此处也把池化层并列加入网络中。

3、实际中的Inception

我们在上面提供了一种Inception的结构但是这个结构存在很多问题是不能够直接使用的。首要问题就是参数太多导致特征图厚度太大。为了解决这个问题作者在其中加入了1X1的卷积核改进后的Inception结构如下图
在这里插入图片描述
在这里插入图片描述
这样做有两个好处首先是大大减少了参数量其次增加的1X1卷积后面也会跟着有非线性激励这样同时也能够提升网络的表达能力。

4、GoogleNet 整体网络结构

在这里插入图片描述

对上图说明如下

1GoogLeNet采用了模块化的结构Inception结构方便增添和修改

2网络最后采用了average pooling平均池化来代替全连接层该想法来自NINNetwork in Network事实证明这样可以将准确率提高0.6%。

3虽然移除了全连接但是网络中依然使用了Dropout ;

4为了避免梯度消失网络额外增加了2个辅助的softmax用于向前传导梯度辅助分类器

对于前三点都很好理解下面我们重点看一下第4点。这里的辅助分类器只是在训练时使用在正常预测时会被去掉。辅助分类器促进了更稳定的学习和更好的收敛往往在接近训练结束时辅助分支网络开始超越没有任何分支的网络的准确性达到了更高的水平。

至此整个GoogLeNet网络便介绍完毕了。

在这里插入图片描述

阿里云国内75折 回扣 微信号:monov8
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6
标签: go