本文介绍了 Inception 家族的主要成员,包括 Inception v1、Inception v2 、Inception v3、Inception v4 和 Inception-ResNet。它们的计算效率与参数效率在所有卷积架构中都是顶尖的。

Inception 网络是CNN分类器发展史上一个重要的里程碑。在 Inception 出现之前,大部分流行 CNN 仅仅是把卷积层堆叠得越来越多,使网络越来越深,以此希望能够得到更好的性能。

例如AlexNet,GoogleNet、 VGG-Net、ResNet等都是通过加深网络的层次和深度来提高准确率。

GoogLeNet 最大的特点就是使用了 Inception 模块,它的目的是设计一种具有优良局部拓扑结构的网络,即对输入图像并行地执行多个卷积运算或池化操作,并将所有输出结果拼接为一个非常深的特征图。因为 1*1、3*3 或 5*5 等不同的卷积运算与池化操作可以获得输入图像的不同信息,并行处理这些运算并结合所有结果将获得更好的图像表征。

Inception常见的版本有:

  • Inception v1

  • Inception v2 和 Inception v3

  • Inception v4 和 Inception-ResNet

每个版本都是前一个版本的迭代进化。了解 Inception 网络的升级可以帮助我们构建自定义分类器,优化速度和准确率。

Inception v1

Inception v1首先是出现在《Going deeper with convolutions》这篇论文中,作者提出一种深度卷积神经网络 Inception,它在 ILSVRC14 中达到了当时最好的分类和检测性能。

Inception v1的主要特点:一是挖掘了1 1卷积核的作用*,减少了参数,提升了效果;二是让模型自己来决定用多大的的卷积核

1* 1卷积

1* 1卷积

1* 1卷积不仅可以减少神经网络的参数量,还可以压缩通道数,大大提高了计算效率。

把不同大小的卷积核组合在一起

把不同的卷积核组合在一起,不仅可以增大感受野,而且还可以提高神经网络的鲁棒性。在一层里把不同大小的卷积核叠在一起后,意味着一层里可以产生不同大小的卷积核处理之后的效果,也意味着不用人为的来选择这一层要怎么卷,这个网络自己便会学习用什么样的卷积(或池化)操作最好。

下面是卷积神经网络Inception模块的基本组成部分:

Inception v2

Inception v2 和 Inception v3 来自同一篇论文《Rethinking the Inception Architecture for Computer Vision》,作者提出了一系列能增加准确度和减少计算复杂度的修正方法。

将5* 5卷积分解为两个3* 3卷积

将 5×5 的卷积分解为两个 3×3 的卷积运算以提升计算速度。如此可以有效地只使用约(3x3 + 3x3)/(5x5)=72%的计算开销。下图可看出此替换的有效性。

所以升级后的Inception模块如下图所示:

最左侧前一版 Inception 模块中的 5×5 卷积变成了两个 3×3 卷积的堆叠。

将 n*n 的卷积核尺寸分解为 1×n 和 n×1 两个卷积。

例如,一个 3×3 的卷积等价于首先执行一个 1×3 的卷积再执行一个 3×1 的卷积。这样同样可以只使用约(1x3 + 3x1) / (3x3) = 67%的计算开销。下图是此替换的有效性。作者更进一步发挥想象,认为任一个nxn conv都可通过替换为两个分别为1xnnx1的convs层来节省计算与内存。

更新后的Inception模块如下图所示:

此处如果 n=3,则与上一张图像一致。最左侧的 5x5 卷积可被表示为两个 3x3 卷积,它们又可以被表示为 1x3 和 3x1 卷积。

模块中的滤波器组被扩展(即变得更宽而不是更深),以解决表征性瓶颈。如果该模块没有被拓展宽度,而是变得更深,那么维度会过多减少,造成信息损失。如下图所示:

Inception v3

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

  • RMSProp 优化器;

  • Factorized 7x7 卷积;

  • 辅助分类器使用了 BatchNorm;

  • 标签平滑(添加到损失公式的一种正则化项,旨在阻止网络对某一类别过分自信,即阻止过拟合)。

Inception v2和Inception v3最终模型

Inception v4

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

Inception v4网络结构

Inception v4

首先stem分支,可以直接看论文的结构图:

然后接下来它们有三个主要的Inception 模块和Reduction模块,称为 A、B 和 C(和 Inception v2 不同,这些模块确实被命名为 A、B 和 C)。它们看起来和 Inception v2(或 v3)变体非常相似。

Inception v4 引入了专用的「缩减块」(reduction block),它被用于改变网格的宽度和高度。早期的版本并没有明确使用缩减块,但也实现了其功能。

缩减块 A(从 35x35 到 17x17 的尺寸缩减)和缩减块 B(从 17x17 到 8x8 的尺寸缩减)。这里参考了论文中的相同超参数设置(V,I,k)。

直接看其网络结构:

Inception-ResNet

在该论文中,作者将Inception 架构残差连接(Residual)结合起来。并通过实验明确地证实了,结合残差连接可以显著加速 Inception 的训练。也有一些证据表明残差 Inception 网络在相近的成本下略微超过没有残差连接的 Inception 网络。作者还通过三个残差和一个 Inception v4 的模型集成,在 ImageNet 分类挑战赛的测试集上取得了 3.08% 的 top-5 误差率。

(左起)Inception ResNet 中的 Inception 模块 A、B、C。注意池化层被残差连接所替代,并在残差加运算之前有额外的 1x1 卷积。

  • 主要 inception 模块的池化运算由残差连接替代。然而,你仍然可以在缩减块中找到这些运算。缩减块 A 和 Inception v4 中的缩减块相同。

具体Inception-resnet A、B、C各个模块网络结构详见原论文

针对深网络结构设计的衰减因子

如果卷积核的数量超过 1000,则网络架构更深层的残差单元将导致网络崩溃。因此,为了增加稳定性,作者通过 0.1 到 0.3 的比例缩放残差激活值。

激活值通过一个常数进行比例缩放,以防止网络崩溃。

Inception-ResNet v1结构

结果精度对比

经典神经网络 | 从Inception v1到Inception v4全解析相关推荐

  1. inception v4 官方实现_经典神经网络 | 从Inception v1到Inception v4全解析

    本文介绍了 Inception 家族的主要成员,包括 Inception v1.Inception v2 .Inception v3.Inception v4 和 Inception-ResNet.它 ...

  2. 经典卷积神经系列(Inception v1\v2\v3\v4、ResNet、ResNext、DenseNet、SENet)

    写在前面:此文只记录了下本人感觉需要注意的地方,不全且不一定准确.详细内容可以参考文中帖的链接,比较好!!! 经典的CNN:Inception v1\v2\v3\v4.Resnet.Resnext.D ...

  3. 从Inception v1,v2,v3,v4,RexNeXt到Xception再到MobileNets,ShuffleNet,MobileNetV2

    from:https://blog.csdn.net/qq_14845119/article/details/73648100 Inception v1的网络,主要提出了Inceptionmodule ...

  4. 深入浅出——网络模型中Inception的作用与结构全解析

    原文地址:https://blog.csdn.net/u010402786/article/details/52433324 一 论文下载 本文涉及到的网络模型的相关论文以及下载地址:    [v1] ...

  5. CNN经典模型:GoogLeNet(从Inception v1到v4的演进)

    GoogLeNet和VGG是2014年ImageNet挑战赛(ILSVRC14)的双雄,GoogLeNet获得第一名.VGG获得第二名,这两类模型结构的共同特点是层次更深了.VGG继承了LeNet以及 ...

  6. [计算机视觉]-经典网络inception v1、v2、v3、v4核心工作详解及总结

    资源 inception v1 Going deeper with convolutions:https://arxiv.org/abs/1409.4842 BN算法 Batch Normalizat ...

  7. GoogLeNet(从Inception v1到v4的演进)

    GoogLeNetInceptionCNN深度学习卷积神经网络 2014年,GoogLeNet和VGG是当年ImageNet挑战赛(ILSVRC14)的双雄,GoogLeNet获得了第一名.VGG获得 ...

  8. 经典的卷积网络架构(二)——GoogLeNet [inception v1] 详解

    GoogLeNet出自论文Going Deeper With Convolutions 如有错误,欢迎指正! (未完待续) 目录 论文阅读 补充知识点:1*1卷积的作用 网络结构分析 参考博文 参考代 ...

  9. 谷歌系列 :Inception v1到v4

    Paper列表: [v1] Going Deeper with Convolutions, 6.67% test error, http://arxiv.org/abs/1409.4842 [v2] ...

最新文章

  1. TiXml使用详解(转)
  2. EasyUI –tree、combotree学习总结
  3. rust领地柜保养物品放什么_门厅柜的样式,只有这四种
  4. iOS---------- MBProgressHUD (1.0.0)的变动
  5. flex弹性布局笔记
  6. python class def 格式_Python symbol.classdef方法代码示例
  7. 测试:fiddler使用
  8. 使用XLocalizer进行ASP.NET Core本地化
  9. 使用Elasticsearch,Kafka和Cassandra构建流式数据中心
  10. DFS(深度优先遍历)走迷宫算法
  11. VSCODE添加open with code功能,实现右键打开文件夹
  12. 【Python】使用Python批量移动文件
  13. excel对比两列不同
  14. 十大排序算法(数据结构)
  15. 农夫山泉(数据范围是亮点)
  16. 阿里云配置DNS服务器
  17. 非因解读 | DSP空间转录组技术揭示食管鳞状细胞癌三级淋巴样结构的预后价值及分子特征
  18. (手机拍照)4、修图软件
  19. oracle 关系 表 视图_oracle主要的动态视图与基表的对应关系
  20. Complementary congruent and opposite neurons achieve concurrent multisensory integration and segrega

热门文章

  1. git与github学习笔记
  2. Java的equals()和==的区别
  3. poj 2255 Tree Recovery
  4. 无废话ADO.NET 第三章 进行查询
  5. \r:command not found
  6. leetcode 172 python
  7. hadoop使用mapreduce统计词频_hadoop利用mapreduce运行词频统计(非例程)
  8. go get 的不再src目录中_如何正确的开始用Go编程
  9. 怎么测试服务器端口是否对外开放_12个经典性能测试人员面试题
  10. 实战经验:Oracle recyclebin过大导致的Insert逻辑读暴增问题的解决