ResNet

###看文章的时候为什么优化残差更容易这个问题困扰了我很久,所以下面主要记录这个问题的理解以及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:F\left ( x \right )=H(x)-x

H\left ( x \right ) :desired underlying mapping——期望拟合的特征图,一个building block要拟合的就是这个特征图,未使用残差网络时,F\left ( x \right ) 的目标是拟合H\left ( x \right )。使用参差网络后F\left ( x \right )的目标是拟合H\left ( x \right )-x,后者比前者更容易优化!

解释:

假设我们认为deeper层相较于shallower层的有一些层是冗余的,那我们的学习目标应该是使这些层变成线性层,这样才能不影响网络的性能。那么拟合的目标就变成了:H\left ( x \right )=x,即F(x)=0,这要比之前的F(x)=x更容易拟合!

 

 

已标记关键词 清除标记
©️2020 CSDN 皮肤主题: 编程工作室 设计师:CSDN官方博客 返回首页