1.摘要:
1)更深的网络更难训练,容易出现梯度消失/爆炸现象。
2)提出了一个残差学习框架来减轻网络训练,使得显著增加深度来提高准确性,而不会发生梯度消失/爆炸。
2.引言
遇到的问题:
随着网络深度的增加,准确率达到饱和(这可能并不奇怪),然后迅速下降。
例如下图层数越多测试集和训练集的反而错误率越高:
引入深度残差学习框架解决上述退化问题
残差块:
下图相当于输出中又加入/减少了一个输入来控制层数增加后梯度消失/爆炸的问题。
3.网络架构
1.简单网络(受到VGG16的启发)
卷积层主要有 3×3 的滤波器
遵循两点设计规则:
(i)为了得到相同的输出特征图尺寸,所有层具有相同数量的滤波器;
(ii)如果特征图尺寸减半,则滤波器数量加倍,以便保持每层的时间复杂度。
通过步长为 2 的卷积层直接执行下采样。网络以全局平均池化层和具有 softmax 的 1000 维全连接层结束。
2.残差网络
两种类型残差块:
1)输入和输出具有相同的维度时(对应实线部分):
直接使用恒等快捷连接
2)维度增加(当快捷连接跨越两种尺寸的特征图时,它们执行时步长为2):
①快捷连接仍然执行恒等映射,额外填充零输入以增加维度。这样就不会引入额外的参数。
②用下面公式的投影快捷连接用于匹配维度(由1×1卷积完成)
实现:
1)调整图像大小,其较短的边在[256,480]之间进行随机采样,用于尺度增强。
2)从图像或其水平翻转中随机采样 224×224 裁剪大小,并逐像素减去均值,使用了标准颜色增强
3)在每个卷积之后和激活之前,我们采用批量归一化(BN)
批大小为 256 的 SGD 方法。
学习速度从 0.1 开始,当误差稳定时学习率除以 10,并且模型训练达 60×104 次迭代。
我们使用的权重衰减为 0.0001,动量为 0.9。
4.实验结果:
可以看出:34 层 ResNet 比 18 层 ResNet 更好 (2.8%),说明在这种情况下,退化问题得到了很好的解决,我们从增加的深度中设法获得了准确性收益。
从图中看出34层的ResNet效果更显著,证实了在极深系统中残差学习的有效性。
ResNet-50/101/152 都是仅使用投影增加维度的 B 配置