转载:
Deep Residual Learning for Image Recognition(译)
如果有侵权,请作者提出,我删除。下面是从原作者小时候贼聪明的译文中,精简便于我复习。谢谢作者。
1. 问题提出
当深层网络能够收敛时,一个退化问题又出现了:随着网络深度的增加,准确率先上升然后达到饱和(不足为奇),再持续增加深度则会导致准确率下降,而迅速退化。意外的是,这种退化并不是由过拟合造成的,因为不光在测试集上误差增大,训练集本身误差也会增大。并且在一个合理的深度模型中增加更多的层却导致了更高的错误率。
2. 问题解决方法
一种深度残差学习框架来解决这个退化问题。原始输入信息直接传输到后面的层中。
- ResNet残差学习原理
若将输入设为X,将某一有参网络层设为H,那么以X为输入的此层的输出将为H(X)。一般的CNN网络如Alexnet/VGG等会直接通过训练学习出参数函数H的表达,从而直接学习X -> H(X)。
而残差学习则是致力于使用多个有参网络层来学习输入、输出之间的参差即H(X) - X即学习X -> (H(X) - X) + X。其中X这一部分为直接的identity mapping,而H(X) - X则为有参网络层要学习的输入输出间残差。
【备注:这部分来自简书 经典分类CNN模型系列其四:Resnet】
3. ResNet框架结构
在VGG网络结构基础上,先构造了34层plain网络,便于和ResNet网络进行对比。而plain网络和ResNet网络从结构上看,也仅仅只差了“一部分输入直接传递到输出”。而ResNet网络则是plain网络的残差版本。参看下图中:
左-- VGG-19网络作为参考;中-- 34层的plain网络; 右-- 34层resnet网络
4. ResNet方法结果验证
ImageNet测试集上,ResNet组合模型(ensemble)的top-5错误率仅为3.57%。