ResNet随堂笔记

目的:使用残差网络来简化更深的网络的训练。
成就:ILSVRC 检测和定位第一名;COCO 2015检测和分割第一名 
退化(训练的准确率下降):随着网络深度的增加,准确率达到饱和(不足为奇)然后迅速退化。这种退化并不是由过拟合造成的,并且在一个合理的深度模型中增加更多的层却导致了更高的错误率,理论上一个更深的模型应该比相同配置下的更浅的模型具体更高的精度
本文提出了一种深度残差学习框架来解决退化问题,本文表明了: 1) 这个极深的残差网络是很容易优化的,但是对应的普通的“plain”网络(仅是堆叠了层)在深度增加时却出现了更高的错误率。 2) 我们的深度残差网络能够轻易的由增加层来提高准确率,并且结果也大大优于以前的网络。
这个极深的模型在其他识别任务上同样也具有非常好的泛化性能,这让我们在ILSVRC & COCO 2015 竞赛的ImageNet检测、ImageNet定位、COCO检测以及COCO分割上均获得了第一名的成绩。这强有力的证明了残差学习法则的通用性,因此我们将把它应用到其他视觉甚至非视觉问题上。

ResNet随堂笔记

如果恒等映射是最优的,那么求解器驱使多个非线性层的权重趋向于零来逼近恒等映射。
在每一个卷积层之后,**层之前均使用batch normalization(BN)。使用的mini-batch的尺寸为256。学习率从0.1开始,每当错误率平稳时将学习率除以10,整个模型进行60104
60∗104
次迭代训练。我们将权值衰减设置为0.0001,a 动量为0.9。没有使用dropout。mini-batch的大小为128,模型在2块GPU 上进行训练
残差网络和对应的plain网络相比并没有增加额外的参数。
ResNet随堂笔记

从上图可以观测到以下三点:

第一,与plain网络相反,34层的ResNet比18层ResNet的结果更优(2.8%)。更重要的是,34 层的ResNet在训练集和验证集上均展现出了更低的错误率。这表明了这种设置可以很好的解决退化问题,并且我们可以由增加的深度来提高准确率。

第二,与对应的plain网络相比,34层的ResNet在top-1 错误率上降低了3.5% (Table 2),这得益于训练错误率的降低(Fig.4 右 vs 左)。这也验证了在极深的网络中残差学习的有效性。

最后,我们同样注意到,18层的plain网络和残差网络的准确率很接近 (Table 2),但是ResNet 的收敛速度要快得多。(Fig.4 右 vs 左)。
如果网络“并不是特别深” (如18层),现有的SGD能够很好的对plain网络进行求解,而ResNet能够使优化得到更快的收敛。
无参数的恒等shortcuts是有助于训练的。
ResNet随堂笔记

如上图,考虑到训练时间的限制,我们将构建块修改成\emph{瓶颈}的设计。对于每一个残差函数F
F
,我们使用了三个叠加层而不是两个。 这三层分别是1*1、3*3 和1*1 的卷积,1*1 的层主要负责降维然后升维(恢复),使得3*3的卷积层的输入和输出的维度都是低维度。

50/101/152层ResNets比34层ResNet的准确率要高得多(Table 3 和4)。而且我们并没有观测到退化问题。所有的指标都证实了深度带来的好处。
我们在训练阶段遵循Lee2015deeply中的数据增强法则:在图像的每条边填充4个像素,然后在填充后的图像或者它的水平翻转图像上随机采样一个32*32 的crop。在测试阶段,我们只使用原始32*32的图像进行评估。
深度plain网络随着层数的加深,训练错误率也变大。这个现象与在ImageNet(Fig.4, 左)和MNIST上的结果很相似,表明了优化上的难度确实是一个很重要的问题。