resnet 论文_论文笔记 - ResNet

d4d0ea70c82f88b19acb96e92df34a96.png

论文信息

  • 年份:2016
  • 作者:Kaiming He
  • 会议/期刊:CVPR
  • 论文地址:Deep Residual Learning for Image Recognition
  • 源码:torchvison resnet

论文解读

Abstract

作者指定了网络层学习的目标为残差函数,作者提出了一种残差网络结构来训练更深的网络模型,并在大量的实验中验证了该残差结构能够随着网络模型的变深而获益,在ImageNet上测试了152层的残差网络,并取得了ILSVRC 2015分类任务第一名。

1 Introduction

深度网络模型通过端到端、多层级的方式抽取了低、中、高级别的特征,并且可以通过增加网络层的数量来丰富特征的级别。事实表明,越深的网络模型能够带来更好的分类效果。

那是不是,为了获得更好的模型,只要增加网络的深度就可以了呢?显示不是,梯度消失和梯度爆炸是其中的一个问题,不过该问题可以通过:1)初始化;2)BN等方式解决。当更深的网络能够开始收敛时,就会出现降级问题:随着网络深度的增加,准确度变得饱和(这可能不足为奇)然后迅速降级。

d242bcdee69e0d9cc964802102342ff4.png

但是作者提出,如果增加的网络深度每层只做identity mapping的话,那么更深的网络模型的表征能力是不会比较浅的网络差的。而随着网络越深,模型效果降级的现象表明了,网络越深,模型会变得难训练,甚至连identity mapping都变得困难。

为此,作者提出了残差网络来解决这个问题。形式上,假设所需的底层映射表示为

equation?tex=%5Cmathcal%7BH%7D%28x%29 ,我们可以让堆叠的非线性层拟合另一个映射
equation?tex=%5Cmathcal%7BF%7D%28%5Cmathbf%7Bx%7D%29+%3A%3D%5Cmathcal%7BH%7D%28%5Cmathbf%7Bx%7D%29-%5Cmathbf%7Bx%7D ,则原本的映射
equation?tex=%5Cmathcal%7BH%7D%28x%29 被替换为
equation?tex=%5Cmathcal%7BF%7D%28x%29+%2B+x 。作者提出,优化该目标会比优化原目标容易得多,也可以很好的解决上述降级问题。 该想法通过在网络中引入“shortcut connections”来实现,如下图所示:

22214d8c56c93c8af6a6344836f6e358.png

2 Related Work

残差表示在很多方面都有应用,如:VLAD、Fisher Vector、vector quantization。Shortcut Connetions也在很多地方有应用,“inception”的NIN网络结构中,包含了shortcut分支和一些多层分支。

3 Deep Residual Learning

3.1 Residual Learning

实际上就是让残差网络去逼近

equation?tex=%5Cmathcal%7BF%7D%28%5Cmathbf%7Bx%7D%29+%3A%3D%5Cmathcal%7BH%7D%28%5Cmathbf%7Bx%7D%29-%5Cmathbf%7Bx%7D ,则整个网络拟合函数就是
equation?tex=%5Cmathcal%7BF%7D%28%5Cmathbf%7Bx%7D%29+%2B+%5Cmathbf%7Bx%7D

利用残差学习重新表达,如果恒等映射是最优的,模型可以简单地将多个非线性层的权重调为0以接近恒等映射。

3.2 Idnetity Mapping by Shortcuts

这节主要将如何实现上述的残差学习,实际非常简单,只要让 building block的输入,输出满足如下表达式即可:

equation?tex=%5Cmathbf%7By%7D%3D%5Cmathcal%7BF%7D%28%5Cmathbf%7Bx%7D%2C%7BW_%7Bi%7D%7D%29%2B%5Cmathbf%7Bx%7D++%5C%5C

其中

equation?tex=%5Cmathbf%7Bx%7D 表示block输入,
equation?tex=%5Cmathbf%7By%7D 表示block输出,
equation?tex=%5Cmathcal%7BF%7D 表示残差函数,在深度模型中的形式通常为:

equation?tex=+%5Cmathcal%7BF%7D%3DW_%7B2%7D+%5Csigma%5Cleft%28W_%7B1%7D+%5Cmathbf%7Bx%7D%5Cright%29+%5C%5C

这里因为要做加法,所以需要保证

equation?tex=%5Cmathcal%7BF%7D 的输出和
equation?tex=x 的维度是一样的,为了满足这一点,会对
equation?tex=x 做一下投影映射,所以把上述表达式改写为:

equation?tex=+%5Cmathbf%7By%7D%3D%5Cmathcal%7BF%7D%28%5Cmathbf%7Bx%7D%2C%7BW_%7Bi%7D%7D%29%2BW_%7Bs%7D+%5Cmathbf%7Bx%7D+%5C%5C

作者提出

equation?tex=%5Cmathcal%7BF%7D 是比较灵活的,可以使不同的网络结构。在实际使用中,ResNet使用了大量2~3层的网络来表示
equation?tex=%5Cmathcal%7BF%7D 。如下图所示。左边的可定位为"basic block",右边的定位为“bottleneck”

3ad638b7a7b9045bc32a065ff6369d40.png

3.3 Network Architectures

这一节拿Residual Network和Plain Network做比较,其中Plain Network参考了VGG来设计。网络结构如下:

a7a762b964eb6da748fe8c92fe4a6e15.png

3.4 Implementation

网络的数据处理和训练设置介绍。数据处理主要经过了resize、scale augmentation、horizontal flip、mean subtracted。训练包括使用了BN、SGD(mini-batch 256)、lr=0.1(divided by 10 when the error plateaus)、weight decay=0.0001、momentum=0.9

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值