ResNet 论文阅读笔记

ResNet 论文阅读笔记

原文:Deep Residual Learning for Image Recognition

概括

文章提出了深度残差学习网络,解决了深层网络难以优化的问题,核心思想是以学习残差代替学习直接映射,理论上这降低了网络学习到恒等映射的难度,从而使得更深的网络起码和浅的网络效果一样好

文章解决了什么问题

  • 更深的神经网络更难训练,容易出现梯度爆炸和消失的问题,但初始化的正规化和中间层的正规化很大程度的降低了这一可能(不是本文主要解决的问题)
  • 更深的网络的准确率达到饱和,进而不断下降,增加更多层反而引起更多的误差
  • 这意味着这个系统难以优化(本文主要解决的就是更深的网络的优化问题)

用了什么方法

主要思想

理论上来说,更深的网络至少可以表现地和浅层的网络一样好,只要在一个浅层的网络后加多层恒等变换层

提出了残差学习网络来降低深层神经网络的学习难度,网络不直接学习输入到输出的映射 H ( x ) H(x) H(x)而学习输出和输入之差 F ( x ) = H ( x ) − x F(x)=H(x)-x F(x)=H(x)x,然后通过 F ( x ) + x F(x)+x F(x)+x重建原映射,作者认为,如果恒等映射是最优的,这样的网络学习恒等变换比原来要简单(只要层的所有参数为0即可)

细节

在这里插入图片描述
x的传播可以很容易地使用shortcut connections实现

图中给出了ResNet的building block,定义为
y = F ( x , { W i } ) + x y=F(x,\{W_i\})+x y=F(x,{Wi})+x
其中 x x x y y y分别为输入和输出, F F F表示待学习的残差映射,比如在上图中,就有 F = W 2 σ ( W 1 x ) F=W_2\sigma(W_1x) F=W2σ(W1x),其中 σ \sigma σ是ReLU函数,且为了简洁省略了偏置项,注意第二个非线性层在 F ( x ) + x F(x)+x F(x)+x之后使用

注意到这个shortcut connection没有引入新的参数和额外的计算复杂度

注意到 F F F x x x的维度必须相同,如果不相同,可以通过一个投影变换实现
y = F ( x , { W i } ) + W s x y=F(x,\{W_i\})+W_sx y=F(x,{Wi})+Wsx
作者也提出可以在维度match的时候在 x x x前加一个方阵 W s W_s Ws,但实验中表明恒等映射已经足够, W s W_s Ws仅仅在维度不匹配时使用
每个building block中的层数大于等于两层(图例中是两层),作者观察到使用1层并不能带来什么好处,可能由于1层本身就是一个线性变换 y = W 1 x + x y=W_1x+x y=W1x+x

网络结构
在这里插入图片描述
作者使用一个plain网络和一个ResNet来做对比,其中

  • plain Network
    • 所有卷积之后输出的大小不变
    • 如果特征图长宽小一半,则卷积核的数量加倍(channel加倍)以保证每层计算复杂度一样
  • Residual Network
    • 在plain Network的基础上加shortcut connections
    • channel相同时,之间使用identity shortcuts
    • 如果channel增加了(图中虚线),有两个选择:
      • (A) 0 padding
      • (B) 使用投影变换
    • channel增加伴随着feature map的减小,此时相加的时候对x使用stride=2
      注意其中的多数下采样均是由stride为2的卷积网络实现的,而非池化层

不同层的ResNet

层数不同的ResNet的区别如下
在这里插入图片描述
bottleneck是权衡之后的building block,更深的网络可以得到更好的结果,但是相比训练时间来说是不值得的

ResNet-50

用3层的block代替ResNet34中的2层block

ResNet101和ResNet152

使用更多的3层block得到

在这里插入图片描述

效果如何

plain Net和ResNet的对比

在这里插入图片描述
在这里插入图片描述
浅层的网络精度相差不多,但ResNet18收敛更快,随着层数增加,plain Net的误差反而上升,而ResNet的误差大大下降

shortcuts connection和不同层数的ResNet的对比(ImageNet)

三种shortcuts

  • (A)0 padding
  • (B)只在维度改变时使用投影
  • ©所有shortcuts都使用投影
    在这里插入图片描述
    结果表明三种方法的结果相差不多,C比AB好一点,但C引入了太多的参数,且ResNet50/101/152比ResNet34有更高的准确率

CIFAR-10

在这里插入图片描述
注意到ResNet1202虽然误差也很好,但是没有ResNet110好,可能是因为过拟合的原因

结论

  • ResNet更容易优化
  • 更容易使得网络更深以获得更高的准确率
  • 以3.57%的top-5错误率赢得了2015年ILSVRC的冠军,获得了ImageNet detection,ImageNet localization,COCO detection 和COCO segmentation的冠军

存在什么不足

?

其他

术语

  • FLOPS 每秒浮点运算次数

训练的细节

Image Net
  • 图片随机将小的那一维resize成[256,480]中的值,然后crop成224*224
  • 使用了standard color augmentation
  • 在卷积之后激活之前使用batch normalization
  • 使用SGD,初始学习率为0.1,当误差停滞的时候,将学习率除以10
  • weight decay 0.0001,动量0.9
  • 不使用dropout
CIFAR-10
  • mini batch 128
  • 初始学习率0.1,在32k和48k次迭代时除以10
  • 在64k次迭代时终止

问题

具体地,A、B是怎么实现的?

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值