ResNet —— 深度残差网

来源:互联网 发布:免费车销软件 编辑:程序博客网 时间:2024/05/22 03:02

深度卷积神经网络为图像识别带来了一系列突破。深度网络自然的融合了低/中/高层特征并以端到端多层方式实行分类,且特征的层可通过堆叠层的数量(深度)来丰富。近期证据显示,网络的深度至关重要,并且ImageNet数据集中领先的模型都使用非常深的模型,从16层到30层。

由此带来一个问题,学习更好的网络是否只是简单的堆叠更多的层?回答这个问题一个困难是臭名昭著的梯度消失/爆炸问题。但是这个问题很大程度上被归一初始化和中间归一层所解决,使数十层的网络能够在随机梯度下降和反向传播的情况下收敛。

虽然更深的网络能够开始收敛,但新的退化问题又出现了,随着网络的加深,准确度开始饱和然后快速衰退。出人意料的这种衰退并不是过拟合所造成,并且加入更多的层导致更高的训练误差。

这里我们介绍深度残差学习框架来解决衰退问题。有别于希望每个层堆叠与期望的潜在映射拟合,我们明确地让这些层与残差映射拟合。正式的,将期望的潜在映射定义为H(x),我们让堆叠的非线性层拟合另一个映射F(x):=H(x)-x。原始的映射重写为F(x)+x。我们假设优化残差映射并原始未引用的映射更为简便。极端的例子,如果一个自身映射为最优,将残差推向0比用一堆非线性层拟合自身映射更为容易。

F(x)+x可以通过使用捷径的前向传播神经网络实现。捷径是指那些跳过一或多层的连接。我们这里,捷径只进行自我映射,它们的输出加到层堆叠的输出里。自身捷径连接并不增加额外的参数或计算复杂度。整个网络依然可以用有反向传播的随机梯度下降进行端到端的训练,并且可以简便的使用常见的库如Caffe实现而不需要修改解决器。

网络结构

我们作为参照的普通网络主要用了VGG网络的思想。卷积层大多使用3×3过滤器并且遵循两个原则:一是对于相同输出特征图规模,层具有相同数量过滤器;二是如果特征图规模减半,过滤器数量加倍,以此保持每层的时间复杂性。我们执行步长为2的下取样。网络最后是一个全局平均池化层和一个1000类的softmax全连接层。总共有34权重层。值得注意的是我们网络与VGG网相比,过滤器更少,复杂度更低,我们的34层王有36亿FLOPs(乘-加),只有VGG19的18%(196亿FLOPs).

在上述网络的基础之上我们插入捷径连接,使它成为一个残差网络。当输入和输出维度一致时,自身捷径可直接使用(实线),当维度增加时(虚线),我们考虑两种选择:一是仍然执行自身映射,使用额外的0来填充,这种选择不增加额外参数;二是使用公式映射捷径来匹配维度(通过1×1卷积)。对于两种选择,当捷径跨过特征图两个规格时,使用步长为2。

表中列出了不同深度残差网络的构造

左图为ResNet-34的基本模块,右图为ResNet-50/101/152的“瓶颈”构造模块

深度瓶颈结构堆叠了1×1,3×3,1×1三层卷积,1×1层负责减少然后增加(恢复)维度,使得3×3层成为了有更小输入/输出维度的瓶颈。这种设计主要出于训练时间的考虑。

在ImageNet数据集上,152层的ResNet单一模型的top-5验证误差为4.49%。将6个不同深度的模型结合起来,top-5测试误差为3.57%.


原创粉丝点击