深度在神经网络中有及其重要的做用,但越深的网络越难训练。网络
随着深度的增长,从训练一开始,梯度消失或梯度爆炸就会阻止收敛,normalized initialization和intermediate normalization可以解决这个问题。但依旧会出现degradation problem:随着深度的增长,准确率会达到饱和,再持续增长深度则会致使准确率降低。这个问题不是因为过拟合形成的,由于训练偏差也会随着深度增长而增大。app
假定输入是x,指望输出是H(x),若是咱们直接把输入x传到输出做为初始结果,那么咱们须要学习的目标就是F(X)=H(x)-x。Resnet至关于将学习目标改变了,再也不是学习一个完整的输出H(x),而是H(x)-x,即残差。ide
Shortcut connections:跳过一层或更多层。在论文中,short connection执行identity mapping,把以前层的outputs加到这些stacked layers的outputs,这既不会增长额外的参数也不会增长计算的复杂度。学习
论文中将plain network和residual network作比较,residual只是比plain多了一个shortcut connection。residual network解决了degradation。orm
DRN,deep residual network,同时解决了梯度消失问题。it
若是增长的层可以增长identity mapping,更深的网络应该不会比对应的浅层网络的训练偏差大。若是identity mapping是最优的,训练会驱使增长的非线性层的weight趋于0以靠近identity mapping。这是残差网络的思想。io
使用resnet101层做为目标检测的特征提取层时,不是选择100层做为目标检测的特征提取层,而是选择前91层,由于前91层的total strides是16pixelsclass