经典模型——ResNet

Introduction

深度卷积神经网络的好处在于其层比较多,每一层都能捕捉不同的信息。从低级的视觉特征到高级的语义特征。

但是层这么多是一件好事吗?

显然不是,随着网络层次的加深,会出现梯度爆炸与梯度消失。

常见的解决方案是好的初始化或者加入BN层。

然而,虽然做了这些操作之后,模型收敛了,但是精度却下降了。这也不是过拟合造成的,因为训练误差和测试误差都上升了。如下图所示。

请添加图片描述
进一步思考:按理来说,如果我浅层网络性能比较好的话,深层网络的性能不应该下降的。因为至少可以让新加的层成为一个identity mapping(恒等映射)。但是,简单的SGD是做不到的。

因此,该文章提出了deep residual learning framework,保证网络的性能不会随着深度的增加而变差,这相当于显式地构造出一个identity mapping。

请添加图片描述
核心思想:假设模型的输出是 H ( x ) H(x) H(x),但是我不让模型直接学 H ( x ) H(x) H(x),而是去学习 H ( x ) − x H(x)-x H(x)x,我我们记为 F ( x ) F(x) F(x)。最后的输出就是 F ( x ) + x F(x)+x F(x)+x。我们将 F ( x ) F(x) F(x)称为残差。直观地来讲,就是不要去学习怎么得到H(x),而是去学习已经学习到的东西和真实的东西之间的残差。

优势在于:模型复杂度不会提升;计算量不会增加。

通过实验证明:plain版本效果差一些(没有residual/shortcut connection);随着深度的增加,性能也会提升。

Deep Residual Learning

在这里插入图片描述

请添加图片描述
上图是四个版本的ResNet的结构。可以看到50layer及以上的版本和18、34的版本的结构有所差别,这是因为随着网络层数的加深,我们希望通道数能增加,因为深度意味着可以学到更多的东西,但考虑到随之带来的参数量的增加,所以构造一个bottleneck的结构,通过1x1卷积实现通道的压缩与恢复。

模型中采用了BN层、数据增广来提升模型的泛化性能,但是没有用dropout,因为不包含全连接层。

那么残差连接如何处理输入输出形状不同的情况呢?

第一个方案是在输入和输出上分别添加一些额外的0,使得两者的形状能够对应起来;
第二个方案是用1x1卷积进行投影。

Experiments

请添加图片描述
这个图展示的是18和34版本在有无residual connection的区别。指的说明的有:

  1. 最开始训练误差要比测试误差大,这是数据增强导致的结果;
  2. 每一次突然的下降都是因为学习率的降低。现在一般不采用乘0.1的手段,因为时机难以掌握,乘得太早会导致后期收敛无力;
  3. 这个实验说明的是有残差连接后收敛速度快了、性能也相对更好了;

为什么ResNet训练起来速度快?

梯度消失的原因是因为随着网络的加深,链式法则将很多非常小的数相乘,使得梯度下降法减去一个近乎为0的值,当然,要是陷入了局部最优的位置,都不用深层网络,梯度就很容易消失;

但是ResNet的话,好处在于在原有基础上加了一个浅层网络的梯度,这样深层的梯度虽然小了,但是浅层的还是比较大的,所以从数学上来看,梯度不会轻易消失。

所谓的模型复杂度降低了不是说不能够表示别的东西了,而是能够找到一个不那么复杂的模型去拟合数据,就如作者所说,不加残差连接的时候,理论上也能够学出一个有一个identity的东西(不要后面的东西),但是实际上做不到,因为没有引导整个网络这么走的话,其实理论上的结果它根本过不去,所以一定是得手动的把这个结果加进去,使得它更容易训练出一个简单的模型来拟合数据的情况下,等价于把模型的复杂度降低了。(摘录自此处

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

右边是我女神

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值