论文笔记: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 networksplain 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 NetworksResNet作比较。实验结果如下图:
在这里插入图片描述
在这里插入图片描述
  从上图我们可以看到,对于Plain NetworksPlain-34的错误率比Plain-18的还要高;而ResNet中,ResNet-34ResNet-18误差要小。这说明ResNet解决了网络的退化问题(degradation problem)。

2、网络细节

2.1、ResNet系列具体结构

待更新。。。

2.2、三种shortcut connections实现细节

待更新。。。

2.3、两种bottleneck实现细节

3、论文复现

待更新。。。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章