这篇博文是博主读过何恺明及其团队的论文Deep Residual Learning for Image Recognition所做的总结,如有错误,欢迎指正!
人们主观的认为更深层的神经网络可以更好的拟合训练数据,因为深层网络会有更多的参数来学习更多的细节。但随着神经网络层数的增加,在执行反向传播的过程中很容易遇到梯度爆炸或消失的问题,从而使学习效率降低甚至不收敛。该类问题可以通过合理的初始化参数(He and Xavier Initialization)以及消除内部协变量漂移(BatchNormalization)得到妥善的解决。
然而,即便深层的神经网络开始收敛,文章中又提出了网络退化的问题(degradation):网络层数增加,准确率开始饱和,训练误差增大。下图比较了20层和56层网络的训练何测试误差,可以看出56层网络有更高的训练和测试误差。
但是我们可以通过在20层网络中增加36层恒等映射层(identity mapping)来构造一个和20层网络具有相同性能的56层网络,而通过直接训练56层网络却达不到这种效果。说明深层网络并不善于学习恒等映射。为了解决这一问题,ResNet 利用shortcut connection直接将输入恒等映射到输出层并和输出相加,如下图所示: