一、摘要
受深度意义的驱使,随即提出一个问题:
↓
引出收敛问题:就是众所周知的梯度消失/爆炸问题,它从一开始就会阻碍收敛。
↓
解决办法:提出了归一化的初始化和中间归一化层来解决。
↓
当收敛问题解决后,随即提出退化问题:随着网络深度的增加,精确度达到饱和,并会迅速退化。但出乎意料地是,这种退化并不是由过拟合造成的,而且为合适的深层网络加更多的层将会导致更高的训练误差。
↓
考虑添加层是恒等映射,而其他层都是从较浅模型中复制过来的。
↓
实验结果:较深模型的训练误差低于较浅模型(出现反转,但是我们需要找到方法)
↓
引入一个深度残差学习框。
二、残差学习
1、残差函数
1) 看作一个由若干层堆叠后(并不一定用整个网络)进行拟合的基础映射, 表示其第一层的输入
2)让非线性的堆叠层去对应另一个映射 ,因此原始函数 变成:。
3)将若干堆叠层去逐渐逼近残差函数 :=。
2、残差学习
像上面讨论的那样,如果增加的层可以构建为恒等映射,那么较深层模型的训练误差应小于较浅层模型。
↓
退化问题表明:求解器可能难以通过多个非线性层去逼近恒等映射。
↓
通过残差学习的重新构造,如果恒等映射是最优的,那么求解器可以轻易的将其多个非线性层的权重趋向零,以此来逼近恒等映射。
↓
在真实情况下,恒等映射不可能是最优的。
↓
但相比于零映射,如果最优函数更接近于恒等映射,那么对于求解器就会更容易找到与恒等映射有关的扰动,而不是将函数作为一个新的函数来学习。
3、通过快捷连接的恒等映射
公式为:
1)其中 和 分别指所考虑层的输入和输出向量。
2)函数 表示需要学习的残差映射。例如:(下图),其中 表示 函数,并且为了简化符号而省略了偏置项。
3) 操作是通过快捷连接和元素级的加法来执行。(此时 和 的维度必须是相同的。如果如果两者维度不相同,我们可以通过快捷连接来执行一个线性映射 去匹配两者的维度。 )
4)加法后我们采取另一个非线性操作(例如,如()所示, )。
5)本实验中涉及的函数 是两层或三层的()。
三、网络框架
1、普通网络
主要是受到 网络的启发()。卷积层主要使用 的滤波器并且遵循以下两个简单的设计规则:(1)对于输出 尺寸相同的层,也含有相同数量的滤波器;(2)如果 尺寸减半,那么滤波器的数量就会增加一倍来保证每层的时间复杂度相同。
我们直接通过步长为 2 的卷积层执行下采样。网络的末端是一个全局的平均池化层和一个1000类的包含 的全连接层。加权层的层数是34,如()所示。
值得注意的是相比于 网络(),我们的网络有着更少的滤波器和更低的复杂度。
2、残差网络
在上述网络的基础上,插入了快捷连接(),将网络转化为其对应的残差版本。
1)当输入输出是相同维度的时候( 中的实线),恒等映射 可以被直接使用。
2)维数增加( 中的虚线),我们考虑两个策略:
i)快捷连接仍然使用恒等映射,对于增加的维度使用额外的零填充,此策略不会引入额外的参数;
ii)在 的投影快捷方式 被用于匹配维度。
实现
1、图片被根据其最短边等比缩放,并按照 [256,480] 区间随机采样进行尺度增强。224*224 的裁剪是从一个图像或其水平翻转后的图像中进行随机采样,将裁剪结果减去其平均像素值,并进行标准颜色增强。
2、在卷积层和**层之间采用了 批量正则化(BN)
3、初始化权重,从零开始训练,我们使用 算法, 的大小为 256,学习率从 0.1 开始,当错误率趋于稳定时把学习率除以10,当训练了达到 60万次迭代。我们将权重衰减设置为0.0001,并将动量设置为0.9,我们并不使用dropout。
实验(ImageNet )
1、普通网络:首先评估了18层和34层网络。
实验结果:显示较深的34层普通网络的验证误差高于较浅的18层普通网络。
实验说明:优化的困难并不是由梯度消失而造成的。
2、残差网络:首先评估了18层和34层网络。(每对 3*3 的滤波器中加上一个快捷连接,对所有的快捷方式进行了恒等映射并且对增加的维度进行零填充,所以并没有额外的参数)
实验结果:34层的 要优于 18层的 (2.8%)。
实验说明:1)残差网络的退化问题可以很好的被解决。
2)通过在早期提供更快的收敛速度,使 解决优化问题。
3、比较恒等快捷连接 和 映射快捷连接()
1)三种策略:
()进行零填充以达到维度统一,并且所有快捷连接都是无参数的。
()进行映射快捷方式以达到维度统一,其它维度相同的使用恒等快捷方式。
()所有的都用映射快捷方式。
2)实验结果:
a. 所有的三个选项都要优于普通网络。
b. ()中使用零填充,并没有残差学习(略差)。()中有很多(13个)映射快捷方式所引入的额外参数(略好)。
c. 解决退化问题,映射快捷方式并不是必要的。为了去减少存储/时间复杂度和模型尺寸,所以在本文剩余部分中就不使用()
4、较深的瓶颈网络
考虑到时间限制,将构造块修改成瓶颈形式。此时的快捷连接因为连接两个高维端,所以使用恒等快捷连接更优。三层堆叠分别是 1×1,3×3,1×1,其中 1×1 层主要负责降维/增维,使 3×3层可以达到输入和输出维度更小的瓶颈。
实验(CIFAR10 )
1、体系结构为:
网络的输入是剪掉像素平均值的 32×32 的图像。第一层是 3×3 的卷积层,然后对于尺寸为 {32,16,8} 的特征图,过滤器的数量分别为{16,32,64},使用步长为2的卷积层进行下采样。网络的末端是一个全局的平均 层,一个10类的 全连接层,这些一共是 个有权重的层。
2、所有参数
所有都使用的是恒等快捷连接,它们分别连接到 3×3 的卷积层对。使用参数为0.0001的权重衰减和0.9的动量,并且采用权重初始化,以及 BN,但是并没有使用 。这些模型训练时用了俩个 , 大小为128。初始学习率设置为 0.1,在 32k 和 48k 次迭代时将其除以10,并且在 64k 时终止, 这是由 45k/5k 的 训练集/验证集的分配所决定的。我们遵循【24】中提出的用简单的数据增强来训练:每边都填充4个像素,并从其填充后的图像或者其水平翻转后的图像中进行随机裁剪。测试阶段,我们只是评估其原本的 32×32 的图像。
3、实验结果
我们将 n={3,5,7,9},分别对应到20,32,44,56层网络中
1)普通网络:当深度增加时展现出更高的训练误差。
2)残差网络:克服优化困难,并且做到了在深度增加时准确率增高。