Identity Mapping in Deep Residual Networks Notes
Identity Mapping in Deep Residual Networks
ResNet解决的不是Gradient Vanishing/Exploding, 而是Model Degradation(模型退化)。
模型退化:随着层数增加,准确率趋于饱和,然后开始快速下降(且这种下降不是因为Overfitting, 表现在training error也开始快速下降。)
附加的层数使用identity mapping,其他部分使用已习得的模型,照理说trainng error应该不会高于直接使用原模型,但是实验观察到了下降(或无法收敛)
原residual block的形式为:
其中h为identity mapping, F为残差函数,f为ReLU,可以看到(2)中f不是identity mapping.
论文的核心是把这个改成identity mapping,假设
当f也是identity mapping时,可以得到:
这样对于
如果不考虑dimension mapping,
这个递推式良好的性质是,任意深度表示为之前某一深度加上残差函数的和,而阈值相对的是Plain Network中(忽略BN和ReLU):
对于(5),反向求导也很方便,这里就不写出来了,链式法则相乘,其中每一项形如
而且这也表现了在一个mini-batch中梯度更难为0,因为这要求这个batch中所有样本
模型退化问题的原因是优化问题,而不是表达能力的问题。
pre-activation好用的原因:
- pre_activation使得f变成上文所说的identity mapping,优化更简单
- 之前的resnet虽然使用了BN+ReLU,但是马上加上了shortcut传过来的identity,因此BN的作用到下一层时被减弱了,而pre_activation保证了输入总是被BN正则化的,overfitting的问题能够被解决。