Inception-v4, Inception-ResNet和Residual connections对学习的影响
- 1.摘要
- 2.引言
- 3.文献综述
- 4.体系结构的选择
- 4.1 Pure Inception
- 4.2 Residual Inception Blocks【残差Inception 块】
- 4.3 Scaling of the Residuals【残差的缩放】
- 4.3.1实验发现
- 4.3.1.1实验发现1
- 4.3.1.2实验发现2
- 4.3.1.3实验发现3
- 5.结构详细介绍
- 5.1 Inception v4结构
- 5.2 Inception-Resent-v1结构
- 5.3 Inception-Resent-v2结构
- 5.4 总图
- 6.模型内部组件对比
- 6.1整体框架
- 6.2 Stem块【主干块】
- 6.2Inception A块
- 6.3 Reduction A块
- 6.4 Inception B块
- 6.5 Reduction B块
- 6.6 Inception C块
- 7.阅读总结
- 7.1论文总结
- 7.2 个人阅读总结
- 论文链接:
- https://arxiv.org/pdf/1602.07261.pdf
1.摘要
- 超深度卷积网络是近年来图像识别性能最大进步的核心。
- 例如:Inception体系结构,它已经被证明以相对较低的计算成本实现了非常好的性能。
- 新问题提出:
- 最近残差连接技术与更传统的结构相结合,取得了最先进的性能,其性能与最新一代的Inception-v3网络相似。这就提出了将Inception体系结构与残差连接结合起来是否有任何好处的问题。
- 结论:
- 我们给出了明确的经验证据,表明使用残差连接的训练显著加速了Inception网络的训练。
- 还有一些证据表明,Residual Inception网络比no-Residual connections的Inception网络性能要好。
- 我们还针对residual and non-residual Inception networks提出了几种新的流线型架构。我们进一步演示了适当的激活缩放如何稳定非常广泛的Residual Inception网络的训练。通过三个residual和一个Inception-v4的集成,我们在ImageNet分类(CLS)挑战的测试集上实现了3.08%的top-5误差。
2.引言
- 我们研究了两种最新思想结合: Residual connections (残差连接) 和inception v3 结合
- Residual connections 论文中认为残差连接对于训练非常深入的架构具有内在的重要性。
- 由于Inception网络往往非常深,因此很自然地用残差连接替换Inception体系结构的过滤器连接阶段。这将允许 Inception 结构获得residual connections方法的所有好处,同时保持其计算效率。
- inception v4:
- 除了一个简单的集成,我们还研究了 Inception本身是否可以通过使其更深入和更广泛而变得更高效。设计了一个名为
inception-v4
的新版本,它具有比inception-v3
更统一的简化架构和更多的inception模块。 - 从历史上看,
Inception-v3
继承了早期版本的许多包袱。技术上的限制主要来自于需要使用DistBelief对模型进行分布式训练。现在,在将我们的训练设置迁移到TensorFlow之后,这些限制已经解除,这使我们能够显著简化架构。
- 除了一个简单的集成,我们还研究了 Inception本身是否可以通过使其更深入和更广泛而变得更高效。设计了一个名为
- 在本报告中,将比较两个纯Inception变体(Inception-v3和v4),以及混合同样昂贵的Inception resnet版本。这些模型的选择有些特别,主要的限制是模型参数和计算复杂度应该与非残差模型的成本有点相似。
- 实验结果
Inception-v4
和inception-resnet-v2
都表现得很好,在ImageNet验证数据集上超过了最先进的单帧性能.- 我们想看看它们的组合如何在这个经过充分研究的数据集上推动最先进的状态。令人惊讶的是,我们发现单帧性能的增益并没有转化为集成性能的同样大的增益。
- 尽管如此,它仍然允许我们在验证集上报告3.1% top-5 错误,据我们所知四个模型集成设置了一个新的艺术状态。
- 在最后一节中,我们研究了一些分类失败,并得出结论,集成仍然没有达到该数据集上注释的标签噪声,预测仍有改进的空间。
3.文献综述
- 卷积网络在大规模图像识别任务中变得流行起来。
- He et al.等人介绍了残差连接,他们给出了令人信服的理论和实践证据,证明了使用加性合并信号的优势,无论是图像识别,还是物体检测。作者认为,残差连接对于训练非常深度的卷积模型本质上是必要的。
- 我们的研究结果似乎并不支持这一观点,至少在图像识别方面。
- 然而,这可能需要更多具有更深架构的测量点来理解残差连接所提供的有益方面的真实程度。
- 在实验部分中,我们证明了在不利用残差连接的情况下训练具有竞争力的深度网络并不是很难。然而,残差连接的使用似乎大大提高了训练速度,这是使用残差连接的一个很好的理由。
- Inception深度卷积架构在中被引入。
4.体系结构的选择
4.1 Pure Inception
- 旧的Inception模型曾经以分区方式进行训练,其中每个副本被划分为多个子网络,以便能够在内存中适应整个模型。
- Inception体系结构高度可调,对过滤器数量有很多更改方式,而不会影响经过完全训练的网络的质量。为了优化训练速度,我们仔细调整了层大小,以平衡各个模型子网络之间的计算。
- 随着TensorFlow的引入,我们最新的模型可以在不划分副本的情况下进行训练
- 原因:在一定程度上是由于对反向传播所使用的内存进行了优化,通过仔细考虑梯度计算需要哪些张量,并构建计算以减少此类张量的数量。
- 从历史看,在改变架构方面相对保守,限制改变孤立网络组件同时保持网络的其余部分稳定。没有简化早期的选择导致网络看起来比它们需要的更复杂。
- 在我们更新的实验中,对于
Inception-v4
,我们决定摆脱这个不必要的包袱,并为每个网格大小的Inception块做出统一的选择。 - 注意:
- 图中所有未标记
V
的卷积都是 same-padded,输出网格与输入网格大小一样。 - 标记为
V
的卷积是 valid-padded,每个单元的输入patch完全包含在前一层中,输出激活映射的网格大小相应减小。
- 图中所有未标记
4.2 Residual Inception Blocks【残差Inception 块】
- 对于Inception网络的残差版本,使用比原始更便宜的Inception块。
- 每个Inception块后面是过滤器扩展层(
1 *1
无激活卷积),用于在添加之前缩放滤波器组的维度,以匹配输入的深度。这是补偿由Inception块引起的维数降低所必需的。 - 我们尝试创建Inception残差版本。这里只详细介绍了其中的两个。
Inception-ResNet-v1
:大致是Inception-v3的计算成本Inception-ResNet-v2
:则与新引入的Inception-v4
网络的原始成本相匹配。(在实践中,Inception-v4的步骤时间被证明要慢得多,这可能是由于层数更多的缘故。)
Inception-ResNet-v1
与Inception-ResNet-v2
网络模式图- 两个模型的模型结构一致,只是内部组件发生变化
- 两个模型的模型结构一致,只是内部组件发生变化
- 残差Inception变体和非残差Inception变体之间的另一个技术上的小区别是:
- 在Inception- resnet的情况下,我们只在传统层上使用批处理规范化,而不是在总和层上使用批处理规范化。
- 充分使用批处理归一化是有好处的,但我们希望每个模型副本都可以在单个GPU上训练。
- 事实证明,具有大激活层的内存占用消耗了不成比例的GPU内存。
- 通过在这些层上省略批处理规范化,我们能够大幅增加Inception块的数量。
- 我们希望,随着计算资源的更好利用,这种权衡将变得不必要。
4.3 Scaling of the Residuals【残差的缩放】
4.3.1实验发现
4.3.1.1实验发现1
- 如果过滤器的数量超过1000个,残差变量开始表现出不稳定性,网络刚刚在训练的早期“死亡”,这意味着平均池化之前的最后一层在数万次迭代后开始只产生零。
- 无论是通过降低学习率,还是通过向该层添加额外的批处理规范化,都无法避免。
4.3.1.2实验发现2
- 在将残差添加到前一层之前缩小残差,激活似乎可以稳定训练。一般我们在残差被添加到累积层激活之前,选择了0.1到0.3之间的缩放因子来缩放残差。
4.3.1.3实验发现3
- He et al等人在非常深的残差网络的情况下,观察到类似的不稳定性,他们建议进行两阶段训练。
- 第一个“热身”阶段以非常低的学习率完成
- 第二个阶段以高学习率完成。
- 发现:
- 如果过滤器的数量非常多,那么即使非常低(0.00001)的学习率也不足以应对不稳定性,具有高学习率的训练有机会破坏其效果。
- 发现按比例计算残差更可靠。即使在不需要严格缩放的情况下,它似乎也不会损害最终的精度,但它有助于稳定训练。
5.结构详细介绍
5.1 Inception v4结构
5.2 Inception-Resent-v1结构
5.3 Inception-Resent-v2结构
5.4 总图
6.模型内部组件对比
6.1整体框架
Inception v4
- 使用figure9,pure inception 块
Inception Resent v1
与Inception Resent v2
- 使用figure15, Resent inception 块
- 使用figure15, Resent inception 块
6.2 Stem块【主干块】
6.2Inception A块
6.3 Reduction A块
- 全是用图figure7结构
6.4 Inception B块
6.5 Reduction B块
6.6 Inception C块
7.阅读总结
7.1论文总结
- 论文主要就是将Residual connections (残差连接) 和inception v3 结合。
- 提出了三种新的网络架构
Inception-ResNet-v1
:一个混合的Inception版本,与Inception-v3具有类似的计算成本Inception-ResNet-v2
:一个更昂贵的混合Inception版本,但识别性能显著提高。Inception v4
:一个没有Residual connections的pure Inception变体.
- 研究了Residual connections的引入如何显著提高了Inception架构的训练速度。
- 此外,我们最新的模型(Residual connections和no-Residual connections)比我们之前的所有网络都要好,只是因为模型尺寸增加了
7.2 个人阅读总结
- 论文共有12页,有7-8页是组件结构图,和实验结果图。
- 这篇论文就是将残差连接与Inception块结合,实验是否能够提升模型。
- 结果也证明了性能得到了提高,但是论文好像没有提出太明显创建模型的新思想,就是修改组件结构。【可能我还没有读懂】
残差连接
这篇论文我还没有看,但是好像没有影响我读这篇论文,组件结构为何这样构建,需要读残差网络论文。