【深度学习】残差神经网络

论文地址:Deep Residual Learning for Image Recognition

引言

深度神经网络能够以多层端到端的方式整合low/middle/high level的feature和classifiers,并且特征的“level”会随着网络的深度而加深。

但是,网络真的是越深越好吗?

  • 随着网络的加深,首先会出现梯度消失/梯度爆炸( g r a d i e n t gradient gradient v a n i s h i n g / e x p o l d i n g vanishing/expolding vanishing/expolding),进而影响网络的收敛,这个问题可以通过normalization initialization和一些normalization layers处理
  • 但是,网络收敛之后,又会有网络退化问题:

什么是网络退化问题(degradation)

网络退化问题是指:在神经网络可以收敛的前提下,随着网络深度增加,网络的表现先是逐渐增加至饱和,然后迅速下降。

下图描述了使用不同深度的网络训练得到的训练集上的误差(training error)和测试集上的误差(test error)。
在这里插入图片描述
可以发现,深层的网络反而比浅层网络有着更高的training error。显然这并不是因为过拟合,过拟合的网络是更低的training error 但是更高的test error。

网络退化问题表明并不是所有的网络都容易去优化:试想一下如果存在某个 K K K 层的网络 f f f 是当前最优的网络,那么可以构造一个更深的网络,其最后几层仅是该网络 f f f K K K 层输出的恒等映射 ( I d e n t i t y (Identity (Identity M a p p i n g ) Mapping) Mapping),就可以取得与 f f f 一致的结果;也许 K K K 还不是所谓“最佳层数”,那么更深的网络就可以取得更好的结果。总而言之,与浅层网络相比,更深的网络的表现不应该更差。因此,一个合理的猜测就是,对神经网络来说,恒等映射并不容易拟合

本篇文章提出 d e e p deep deep r e s i d u a l residual residual n e t w o r k network network 来解决网络退化问题:

  • 假设原本期望网络学习的映射为 H ( x ) H(x) H(x) d e e p deep deep r e s i d u a l residual residual n e t w o r k network network并不会让网络中的stacked nonlinear layers直接去学习 H ( x ) H(x) H(x),而是去学习另外一个映射 F ( x ) : = H ( x ) − x F(x):=H(x)-x F(x):=H(x)x,原本的映射转化为 H ( x ) = F ( x ) + x H(x)=F(x)+x H(x)=F(x)+x
  • 这样子构造网络的原因是我们假设学习 F ( x ) F(x) F(x) (residual mapping) 比学习原来的 H ( x ) H(x) H(x) (unreferenced mapping) 要更容易
  • 在极端的情况下,如果identity mapping是最优的话,把residual压缩为0,比让一些非线性层去学习一个恒等映射要容易许多

D e e p Deep Deep r e s i d u a l residual residual n e t w o r k network network的优点有:

  • 容易优化(对于深层的神经网络)
  • 增加网络能够显著提升模型表现

三、深度残差学习

3.1 残差学习

  • 假设 H ( x ) H(x) H(x) 为某些stacked layers需要去学习的潜在映射, x x x 为其中第一个非线性层的输入
  • 如果多个非线性层能够无限逼近任何复杂函数,那么我们也可以认为 F ( x ) : = H ( x ) − x F(x):=H(x)-x F(x):=H(x)x 能够被一些非线性层无限拟合
  • 原来的函数被转化为 H ( x ) : = F ( x ) + x H(x):=F(x)+x H(x):=F(x)+x
  • 尽管两种形式的函数都能够被无限逼近,但是学习的难易程度是不同的

这样子构造是由网络退化的问题启发得到的:

  • 正如我们之前提到的,如果增加的nonlinear layers都是identity mappings,那么深层的神经网络的training error不会比浅层的网络高
  • 网络退化问题表明multiple nonlinear layers很难拟合恒等映射
  • 利用上述的 residual learning,很容易使得网络的权重趋近于0去拟合一个恒等映射

3.2 identity mapping by shortcuts

残差单元可以以跳层连接的形式实现(shortcuts),即将单元的输入直接与单元输出加在一起,然后再激活。因此残差网络可以轻松地用主流的自动微分深度学习框架实现,直接使用BP算法更新参数。
在这里插入图片描述
如果输入和输入维度一致:
z ( l ) = H ( a ( l − 1 ) ) = F ( a ( l − 1 ) , { W i } ) + a ( l − 1 ) z^{(l)}=H(a^{(l-1)})=F(a^{(l-1)},\{W_i\})+a^{(l-1)} z(l)=H(a(l1))=F(a(l1),{Wi})+a(l1)
其中 F ( ⋅ ) F(\cdot) F() 即为网络需要学习的函数。

如果输入和输出维度不一致:
z ( l ) = F ( a ( l − 1 ) , { W i } ) + W s a ( l − 1 ) z^{(l)}=F(a^{(l-1)},\{W_i\})+W_sa^{(l-1)} z(l)=F(a(l1),{Wi})+Wsa(l1)

四、分析

残差网络为什么有效?

残差连接使得信息前后向传播更加顺畅:

  • 在前向传播时,输入信号可以从任意低层直接传播到高层。由于包含了一个天然的恒等映射,一定程度上可以解决网络退化问题
  • 反向传播时,错误信号可以不经过任何中间权重矩阵变换直接传播到低层,一定程度上可以缓解梯度弥散问题(即便中间层矩阵权重很小,梯度也基本不会消失)

可以参考:残差网络解决了什么,为什么有效?

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值