GoogLeNet:inception V1、V2、V3、V4、Inception-ResNet V1、V2详解

?(1409.CVPR) inception V1:Going Deeper with Convolutions论文原文

目标:设计一种既能利用稀疏性,又可以利用稠密计算的网络结构。

?contributions:

  • 引入inception V1
  • 同一层网络多个filter size,为了定位图片中的不同size的object;
  • 添加两个auxiliary loss(防止梯度消失)

在这里插入图片描述
在这里插入图片描述
上图所示:GoogLeNet9 个线性堆叠的 Inception 模块。它有 22 层(包括池化层的话是 27 层)。该模型在最后一个 inception 模块处使用全局平均池化。

不用多说,这是一个深层分类器。和所有深层网络一样,它也会遇到梯度消失问题。

为了阻止该网络中间部分梯度的「消失」过程,作者引入了两个辅助分类器(上图紫色框)。它们对其中两个 Inception 模块的输出执行 softmax 操作,然后在同样的标签上计算辅助损失。总损失即辅助损失和真实损失的加权和。该论文中对每个辅助损失使用的权重值是 0.3。(只在训练过程中用)

?(1512.CVPR) inception V2、V3:Rethinking the Inception Architecture for Computer Vision论文原文

表征性瓶颈:直观上来说,当卷积不会大幅度改变输入维度时,神经网络可能会执行地更好。过多地减少维度可能会造成信息的损失

?contributions:

  • 引入inception V2Inception V3
  • 把V1里的5x5 filter换成了俩个3x3(感知域不变,快了2.78倍)(图1);
  • 其次把nxn filter换成了1xn+nx1(提高了33%效率,有一些精度损失)(图2);
  • 滤波器组被扩展(即变得更宽而不是更深),以解决表征性瓶颈问题(图3)

在这里插入图片描述

inception V3

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

?contributions:

  • 引入inception V3
  • Inception Net v3 整合了前面 Inception v2 中提到的所有升级,还使用了:
  • RMSProp 优化器;
  • Factorized 7x7 卷积;
  • 辅助分类器使用了 BatchNorm;
  • 标签平滑(添加到损失公式的一种正则化项,旨在阻止网络对某一类别过分自信,即阻止过拟合)。

?(1602.CVPR) inception V4、Inception-ResNet:Inception-ResNet and the Impact of Residual Connections on Learning论文原文】【参考文章

动机:结合残差连接可以显著加速 Inception 的训练。使模块更加一致。作者还注意到某些模块有不必要的复杂性。这允许我们通过添加更多一致的模块来提高性能。

Inception V4和Inception-ResNet总体框架

  • steminceptionreduction block三个模块堆积木一样组合而成。

?contributions:

  • 引入inception V4Inception-ResNet
  • 修改了Inception的Stem(修改了什么?);
  • 添加了缩减块(Reduction Block)(A和B、例如A:从35x35降维至17x17)

解决方案

  • Inception v4 的 stem 被修改了。这里的 stem 参考了在引入 Inception 块之前执行的初始运算集。
    在这里插入图片描述
    上图:图左部是 Inception-ResNet v1 的 stem。图右部是 Inception v4 和 Inception-ResNet v2 的 stem
  • 它们有三个主要的 Inception 模块,称为 A、B 和 C(和 Inception v2 不同,这些模块确实被命名为 A、B 和 C)。它们看起来和 Inception v2(或 v3)变体非常相似。
    在这里插入图片描述
    上图:(左起)在 Inception v4 中使用的 Inception 模块 A、B、C
  • Inception v4 引入了专用的「缩减块」(reduction block),它被用于改变网格的宽度和高度。早期的版本并没有明确使用缩减块,但也实现了其功能。
    在这里插入图片描述
    上图:缩减块 A(从 35x35 到 17x17 的尺寸缩减)和缩减块 B(从 17x17 到 8x8 的尺寸缩减)。这里参考了论文中的相同超参数设置(V,I,k)

Inception-ResNet V1、V2:

受 ResNet 的优越性能启发,研究者提出了一种混合 inception 模块。Inception ResNet 有两个子版本:v1 和 v2。在我们分析其显著特征之前,先看看这两个子版本之间的微小差异。

  • Inception-ResNet v1 的计算成本和 Inception v3 的接近。
  • Inception-ResNetv2 的计算成本和 Inception v4 的接近。
  • 它们有不同的 stem,正如 Inception v4 部分所展示的。
  • 两个子版本都有相同的模块 A、B、C 和缩减块结构。唯一的不同在于超参数设置。

?contributing:

  • 引入Inception-ResNet
  • 引入残差连接,它将 inception 模块的卷积运算输出添加到输入上;
解决方案:
  • 为了使残差加运算可行,卷积之后的输入和输出必须有相同的维度。因此,在初始卷积之后使用 1x1 卷积来匹配深度(深度在卷积之后会增加)。
    在这里插入图片描述
    上图:(左起)Inception ResNet 中的 Inception 模块 A、B、C。注意池化层被残差连接所替代,并在残差加运算之前有额外的 1x1 卷积。
  • 主要 inception 模块的池化运算由残差连接替代。然而,仍然可以在缩减块中找到这些运算。缩减块 A 和 Inception v4 中的缩减块相同。
    在这里插入图片描述
    上图:左起)缩减块 A(从 35x35 到 17x17 的尺寸缩减)和缩减块 B(从 17x17 到 8x8 的尺寸缩减)。这里参考了论文中的相同超参数设置(V,I,K)
  • 如果卷积核的数量超过 1000,则网络架构更深层的残差单元将导致网络崩溃。因此,为了增加稳定性,作者通过 0.1 到 0.3 的比例缩放残差激活值。 (激活值通过一个常数进行比例缩放,以防止网络崩溃。)在这里插入图片描述
    原始论文并没有在求和之后使用批归一化,以在单个 GPU 上训练模型(在单个 GPU 上拟合整个模型)。
    研究发现 Inception-ResNet 模型可以在更少的 epoch 内达到更高的准确率。

Inception v4 和 Inception-ResNet 的网络完整架构如下图所示:

在这里插入图片描述
上图:左部是 Inception v4 的架构。右部是 Inception-ResNet 的架构

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值