论文笔记:ResNet论文笔记
论文地址
Deep Residual Learning for Image Recognition
1、 正文
注:笔记仅供参考,可能有分析、理解的不对的地方,欢迎指出!
1.1、提出问题
最近一些研究表明,网络的深度似乎是一个很重要的因素,作者提出了一个问题:
Is learning better networks as easy as stacking more layers?
作者做了一个实验,用CIFAR-10数据集训练了一个20层和56层的网络。这两个网络都是plain networks,plain networks可以理解为是由卷积、池化、全连接构成的传统的卷积神经网络。 实验结果如下:
实验发现了一个问题:随着网络深度的增加,精度却出现了退化(degradation),而且这并不是过拟合(overfitting)造成的。
1.2、分析问题
思考一下,如果我们把56层的网络看成是20层基础上的叠加,并且添加的36层能理解为是对前面20层做出恒等映射(identity mapping)(恒等映射可以理解为x经过某一个函数(设为G(x))作用输出还是x本身,即G(x)=x),那么我们就可以假设一种训练情况:
56层的前20层应该和只有20层的网络的训练结果相同,后36层应该是对前20层输出做恒等映射
如果优化器是按这么训练的,那么更深层模型的训练误差不应该比浅的模型的高。但观察实验结果,网络出现了退化问题(degradation problem);显然优化器并不是这样训练的,这说明传统的网络(plain networks)很难去学习恒等映射。
1.3、提出假设
为了解决退化问题(degradation problem),作者提出了残差学习(residual learning),如下图:
假设F(x)是一个block的映射函数,x是block输入,F(x)是block的输出,H(x)为block的期望函数。也就是我们希望通过训练F(x)中的w和b去逼近H(x)。
引入identity mapping之前:训练F(x)逼近H(x),也就是H(x)=F(x)
引入identity mapping之后:训练F(x)逼近H(x)-x,也就是H(x)=F(x)+x
在引入引入identity mapping之后,H(x)=F(x)+x中,F(x)称为residual mapping,x称为identity mapping。这里的直接将输入连接到输出的结构称为shortcut connections。
想象一下,假设residual mapping比之前的网络(产生输入x的前面的网络)更容易优化。那么当输入x已经是最优的,网络就会想着继续把这个x传递下去。如果residual mapping更容易优化,那么优化器会通过调整参数把F(x)的输出尽可能变为0,尽可能使期望函数H(x)=0+x=x,这样就会尽可能的保留了前面网络的参数。显然、如果假设成立,引入shortcut connections完美完成了恒等映射(identity mapping)。
回到前面那个56层的网络,如果前面20层产生输入x,而且这个x已经很棒了,那么网络就会尽可能的使后面36层设置为0。那么问题来了,如果后面36层全部设成0,就一定能有最优解吗?答案显然是否定的。但是,ResNet的结构似乎已经使得网络不仅具有学习恒等映射的能力,还有学习其他映射的能力(至少它真的解决了退化问题),接下来就用实验说明。
1.4、实验结果
基于上面的假设出发,作者使用Plain Networks跟ResNet作比较。实验结果如下图:
从上图我们可以看到,对于Plain Networks,Plain-34的错误率比Plain-18的还要高;而ResNet中,ResNet-34比ResNet-18误差要小。这说明ResNet解决了网络的退化问题(degradation problem)。
2、网络细节
2.1、ResNet系列具体结构
待更新。。。
2.2、三种shortcut connections实现细节
待更新。。。