首页 > 编程知识 正文

期刊论文读书笔记范例,RES论文

时间:2023-05-06 11:51:12 阅读:146351 作者:677

论文: Christian Szegedy,Sergey Ioffe,Vincent Vanhoucke,Alex Alemi. Inception-v4, Inception-ResNet and the Impact of Residual Connections on Learning

摘要

非常深的卷积神经网络被称为近年来CV任务的核心,例如Inception架构能够以低计算成本实现高精度的特征提取。 本文在Inception-v3的基础上提出了Inception-v4,将Inception体系结构与残差网络相结合,分别为Inception-ResNet-v1和http://www.Sina.com 这些网络在ILSVOM上进一步证明,适当的激活值度量可以稳定Inception-ResNet网络的训练。 用三个残差网络和一个Inception-v4实现集成模型表明在ImageNet分类任务中达到了3.08%的top-5误差。

Inception-ResNet-v2

2012年AlexNet在ImageNet大赛中获胜后,成功完成了多项计算机视觉任务,包括目标检测、图像分割、人体关键点检测、视频分类、目标跟踪和超分辨率技术。 本文将残差连接和Inception这两种最新技术(2016年)相结合。 由于残差链路对于训练非常深的网络非常重要,而Inception网络有非常深的趋势,所以在Inception中添加残差链路是非常自然的想法。 由此,Inception能够在维持计算效率的同时获得残差网络的优点。

除了轻松集成残差连接和Inception外,Inception网络还可以通过在Inception-v3的基础上简化体系结构和添加更多的Inception模块来构建Inception-v4模型Inception-v3使用DistBelief进行分布式培训。 现在,模型培训迁移到Tensorflow后,可以简化Inception。 另外,本文通过将Inception和残差链接相结合,建立了Inception-ResNet模型。

本文比较了Inception-v3、Inception-v4、Inception-ResNet-v1、Inception-ResNet-v2四种模型,最后实验由本文提出的Inception-v4和Inception-v4

引言

自从AlexNet提出以来,CNNs在大规模的图像识别任务中非常流行。 随后出现了里程碑式的cnns,如nin、VGG-net、谷歌net等。 接下来何凯明等人提出了ResNet,认为残差连接是训练非常深的网络的必要结构。 本文的观点似乎与此略有不同,也可以在没有残差链接的情况下训练深度CNNs,但实验表明添加残差链接可以提高模型的训练速度。 Inception模块提出于2014年,将整个网络称为GoogLeNet或Inception-v1,然后通过加入BN得到Inception-v2,对Inception-v3进行了改进。

下面是何凯明等人提出的残差连接。

以下是优化后的残差连接模块。

相关工作

本文提出了三种模型Inception-v4、Inception-ResNet-v1、Inception-ResNet-v2。

架构设计

在以前的Inception模型中,使用DistBelief进行分布式培训,Inception的设计受到限制。 为了优化训练速度,通常通过调整卷积层的大小来平衡模型的计算量。 但是,Tensorflow的引入消除了Inception的设计限制。 过去,更改模型结构的选择相对保守,将实验限制在不同的孤立模型组件上,同时稳定网络的其他部分,导致Inception模型过于复杂。 本文提出Inception-v4消除这些限制。

下面的照片详细说明了Inception-v4的结构。 其中没有“v”的卷积表示same-padded。 也就是说,输入特性图的分辨率与输出一致。 带有“v”的卷积表示可变填充,也就是说,在卷积时不填充。

下图是Inception-v4和Inception-ResNet-v2的stem网络。

    下图是Inception-v4网络中的Inception-A模块:

    下图是Inception-v4网络中的Inception-B模块:

    下图是Inception-v4网络中的Inception-C模块:

    下图是Inception-v4、Inception-ResNet-v1、Inception-ResNet-v2中用于将35x35xC特征图进行下采样所用到的模块Redution-A:

    下图是Inception-v4中用于将17x17xC特征图进行下采样所用到的模块:

    本文提出的Inception-v4网络:

Inception-ResNet网络

    对于带残差的Inception网络使用更简化的Inception模块。每个Inception模块后跟着一个滤波器拓展层(即不带激活函数的1x1卷积层),用于放大输出滤波器的维度以便与“shortcut”相加。

    带残差的Inception和原始Inception之间的一个不同之处在于仅在Inception里面加BN,而在相加层不加BN。这里为了更方便训练,具有大激活大小的层占用了很大的GPU内存。通过去掉这些BN层,可以增加更多的Inception模块。

    本文尝试了多个残差版本的Inception,这里主要介绍两个Inception-ResNet-v1和Inception-ResNet-v2。前者的计算量与Inception-v3差不多,后者与Inception-v4差不多。图15是这两个网络的架构。

    Inception-ResNet-v1网络中用到的Inception-ResNet-A模块:

    Inception-ResNet-v1网络中用到的Inception-ResNet-B模块:

    Inception-ResNet-v1网络中用到的Reduction-B模块:

    Inception-ResNet-v1网络中用到的Inception-ResNet-C模块:

    下图是Inception-ResNet-v1网络的stem部分:

    下图是Inception-ResNet-v1和Inception-ResNet-v2的网络架构,两个网络中的模块的实现不同:

    Inception-ResNet-v2网络中用到的Inception-ResNet-A模块:

    Inception-ResNet-v2网络中用到的Inception-ResNet-B模块:

    Inception-ResNet-v1网络中用到的Reduction-B模块:

    Inception-ResNet-v2网络中用到的Inception-ResNet-C模块:

    本文提出的各模型的参数量如下:

残差的尺度

    本文发现若卷积滤波器的数量超过1000,则残差版本的Inception模型就会出现不稳定的状态,网络就“死”了,仅仅训练几千次迭代后AVG层输出的都为0了。而且这难以修正,既不是因为低学习率,也不是因为BN。

本文发现在残差相加之前缩小激活值可以将训练稳定下来,通常使用的缩小系数为0.1-0.3,如下图所示:

    在ResNet的论文中也出现了类似的不稳定性,他们首先以低学习率来“warm-up”,然后再以高学习率,来解决这个问题。本文发现如果卷积滤波器的数量太多,即使学习率很低(0.00001)也无法将网络训练起来。而缩小残差的激活尺度可以解决这个问题,而这个尺度系数不影响最终的精度,但是可以稳定精度。

训练方法

    本文的模型在Tensorflow上进行分布式训练,使用RMSprop,衰减系数为0.9,ε=1.0。初始学习率为0.045,每两轮的衰减系数为0.94。

实验结果

    首先观察Inception-v3、Inception-ResNet-v1、Inception-v4、Inception-ResNet-v2这四个模型在ImageNet上的top-1和top-5错误率:

    下表展示了各模型的单模型、单输入裁剪的top-1和top-1错误率的比较:

    下表展示了各模型的单模型、多输入裁剪的top-1和top-1错误率的比较:

    下表展示了各模型的单模型、144输入裁剪的top-1和top-1错误率的比较:

    下表展示了各模型的多模型、多输入裁剪的top-1和top-1错误率的比较:

 

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。