论文链接:https://arxiv.org/pdf/1602.07261.pdf
是不是结合残差连接与Inception结构能够产生更好的结果?
我们给出了充足的实验证据,残差连接使得Inception网络训练速度得到巨大的提升。论文给出了几种新的主流网络结构(residual and non-residual Inception networks)。我们进一步阐明,在保证宽Residual Inception网络的稳定性训练前提下,如何合理的增大每一层的激活值。由三个残差变体和Inception-v4组成的网络在ImageNet分类(CLS)挑战的测试集上获得3.05%的top-5误差。
(1)作者研究了两种卷积网络思想:残差连接(residual connections)和Inception-v3。让深层网络Inception与residual结合。不仅能够获得residual思想的好处,也能保证Inception的计算效率。作者除了直接将Residual融合,也研究了:当Inception变得更深、更宽的情况下,是不是能够保证其效率。出于这个目的,作者设计了新版本的结构-Inception-v4,它具有更加统一、简化的结构,以及更多的Inception模块(相比于Inception-v3)。
(2)论文集合了多个优秀模型,得到最优的结果。实验表明,Inception-v4和Inception-ResNet-v2表现差不多。论文着重研究:怎样结合二者的设计思想,进而得到更加优秀的模型。本文最后的部分,我们研究了一些分类失败,总结出模型的集合并没有处理好标注噪声,因此模型仍有提升的空间。
作者简化了模块的设计,去除不必要的集成,对每一个Inception模块进行统一的设计。图9给出了Inception-v4的结构,图3,4,5,6,7,8是每个模块的详细结构。所有卷积中(没有标记为V)意味着填充方式为"SAME Padding",输入和输出维度一致。标记为V的卷积中,使用"VALID Padding",输出维度视具体情况而定。
残差版本的Inception网络,论文使用更加低廉的Inception blocks。每一个Inception block都会添加卷积核扩展层(1x1卷积,没有激活层),在与输入执行相加之前,增大卷积核个数(宽度)。相当于是对Inception block降低维度的弥补。
论文详细介绍了两种ResNet-Inception模型。第一种:"Inception-ResNet-V1",计算效率与Inception-v3类似;第二种:"Inception-ResNet-V2",计算效率与Inception-v4类似。图15给出了上述网络的大致结构。
Inception-ResNet-V1结构:
Inception-ResNet-V2结构:
Residual and non-residual Inception的另一个微小的差别是:在Inception-ResNet网络中,我们只在传统层(traditional layers)使用BN,不在求和层(summations layers)使用BN。通常认为,所有层使用BN是有必要的,但是我们希望模型能够在单个GPU上训练。实验证明,增大层的宽度对于GPU内存的消耗是不成比例的。通过在网络顶层去掉BN层,我们大幅度提高Inception模块的数量。
作者在实验过程中发现,如果卷积核数量突破1000,残差的各种变体开始变得不稳定,网络在更早的死亡,意味着,在训练几万步之后,平均池化前面的几层网络出现零值。即使使用低的学习率或者BN,也无法避免这种情况的出现。作者发现,在与前一层激活层求和时,缩小残差有助于稳定训练过程。一般我们会选择固定的缩放因子,缩放因子一般在0.1和0.3之间。
作者使用tensorflow框架,使用随机梯度训练网络,使用在NVidia开普勒GPU上运行的20个副本。作者早期的实验使用了动量优化[13],衰减为0.9,而最好的模型是使用RMSProp[16],衰减值为0.9,theta=值为1.0。我们使用0.045的学习率,使用指数调度,每两轮指数衰减(0.94)。
表4显示了所使用的各种模型的单一模型性能。表5为集成模型的性能。报告了ILSVRC2012验证集的所有50000张图像。对于inception-v4(+残差),集成由一个inception-v4和三个inception-resnet-v2模型组成,并在验证和测试集上进行了评估。测试集的性能为3.08%的前5名错误,验证了在验证集上没有过度拟合。
本文详细介绍了三种新的网络架构:
inception-ResNet-v1:一个混合初始版本,其计算成本与[15]的初始-v3相似。
inception-ResNet-v2:一个更昂贵的混合盗梦空间版本,显著提高了识别性能。
inception-v4:一个没有剩余连接的纯inception变体,具有与inception-resnet-v2大致相同的识别性能。
本文研究了残差连接的引入如何显著提高了初始架构的训练速度。此外,我们的最新模型(有或没有剩余连接)比我们以前所有的网络做得好,只是由于增加的模型规模。