ResNet

摘要

训练很深的网络很难,我们提出了一个残差连接来降低深层网络的复杂度,使得其更容易训练。

1.介绍

问题:学习更好的网络像堆叠更多的层一样简单吗?

解决:存在梯度消失和梯度爆炸问题,这个问题,可以通过好的标准初始化和BN来解决,这就使得网络可以通过SGD来进行收敛

问题:随着网络开始收敛时候,会出现退化现象,也即深层的网络的训练误差和测试误差都会比浅层网络的要高。

解决:理论上来说,深层的网络一定会比浅层的网络误差要小。理论分析为:深层网络增加的层是恒等映射,而其他层是从已经训练好的浅层模型复制来的。按照这样的思路来说,深层网络的再差也能达到和浅层网络一样的误差,但是结果反而不是。

提出残差连接

假设我们期望的连接映射为H(x),原来的基础映射为x,现在增加一个残差块来学习H(x)比x多学习到的那一部分g(x)。故H(x)=g(x)+x,通过显示的增加恒等映射,来降低模型的复杂度,使得网络更容易训练出来。在极端情况下,如果一个恒等映射是最优的,那么将残差置零比用一堆非线性层来拟合一个恒等映射更容易。
Residual Connection
GBM之前也使用过类似的残差块,这给我们提示:可以用之前的idea来解决当下现存的问题。

2.相关工作

介绍前人其实也有在研究过类似的东西,比如:残差表示和快捷连接

3.深度残差学习

3.1残差学习

3.2恒等映射快捷

快捷连接既不引入额外的参数,也不增加计算复杂度。

3.3网络架构

当网络的维不匹配时,有两种解决策略
A: 捷径仍然执行恒等映射,增加维数时填充额外的零项。这个选项不引入额外的参数;
B: 投影快捷方式用于匹配尺寸(由1×1卷积完成)。

4.实验

network

架构分析

18层和34层,中间可以分为4层,不同层之间使用投影来匹配维度。
18层和34层,中间4层增加了个数。
深层网络的中间层,一般都是先降维,然后卷积,最后升维。远比直接升维做两次卷积的复杂度要低

解决输出和输入不匹配的问题(常用2)

  1. 加0来填充
  2. 维度不同时,用投影来增加维度。相同时,不用投影
  3. 维度同与不同,都用投影

SGD精髓:只要梯度够大,就能train

原来的梯度小,现在加法会加上一个较大的梯度,所以能train的动
gradident

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值