###看文章的时候为什么优化残差更容易这个问题困扰了我很久,所以下面主要记录这个问题的理解以及resnet脉络的整理。
Motivation:
1.神经网络的结构并不是越深越好,随着网络的加深伴随着严重的梯度下降和梯度爆炸的问题,目前batch normalization等方法可以解决梯度消失和梯度爆炸的问题。但是使用了各种normalization的方法也不能是深层网络的效果好于浅层网络。
2.理论上,若A为浅层网络,B为深层网络,且B的浅层结构完全复制于A,后几层为线性层(identity mapping),那么B网络的效果应该是和A的相同的。但是实验发现,A网络的训练准确率反而比浅层网络要低,这说明在实际应用时,高层的这种线性关系很难学到,也就是出现了文中提到的degradation problem(退化)。训练集准确率下降的原因肯定不是过拟合,因为过拟合的话训练集的准确率应该很高。由此出发,我们将这种线性关系加到网络的学习中,最后学出来的网络效果应该大于等于浅层网络的效果,也可以认为,学习这种线性映射会更加容易。
Residual learning:
identity mapping:x->x
residual mapping:
:desired underlying mapping——期望拟合的特征图,一个building block要拟合的就是这个特征图,未使用残差网络时, 的目标是拟合。使用参差网络后的目标是拟合,后者比前者更容易优化!
解释:
假设我们认为deeper层相较于shallower层的有一些层是冗余的,那我们的学习目标应该是使这些层变成线性层,这样才能不影响网络的性能。那么拟合的目标就变成了:,即,这要比之前的更容易拟合!