深度残差网络之讨论-缘何加x可以避免梯度消失?

1.概述

本文档介绍MobileNet里使用的深度残差网络理论,内容主要来源于Deep Residual Learning for Image Recognition一文。
十里桃园首发,转载请注明

  1. Why深度残差?

理论上来说,增加网络的宽度和深度可以提高网络的性能,层数深的网络往往较之浅的网络性能好。如深层x层网络A和浅层y层网络B,那A的性能至少能与B一样。假设网络A的前y层和B网络相同,那么后面的x-y层网络只需做等价映射,就达到了A网络一样的效果。

但基于实验表明,并非如此,由于网络层数达到了一定的数目以后,网络的性能趋于饱和,此时再增加网络深度,其训练和测试误差会因过拟合以外原因性能退化。此问题称为Degradation问题。

  1. 深层网络性能退化

3.1.权重训练与BP神经网络

在深度神经网络的权重训练过程中,赋予初始权重会同样本送入神经网络,逐层传递至输出层。若输出层的实际输出与期望输出不同,则输出误差进行BP反向传播至输入层,在BP的过程中将误差分摊给各层,以修正各层权重,使得如此反复使得误差信号减小到最低限度。

3.2.深层网络的BP梯度消失

记网络期望输出为E,则在传统神经网络中其输出层Loss可求:

在这里插入图片描述

Where : N为当前层数,X前层输出,W为权重,b为偏置

则其梯度的物理意义等价于loss对前层输出求偏导:

在这里插入图片描述
上式为最后N层的反向传递梯度,那么Losso 传递到第一层的偏导不难被判断为是连层N-1次偏导计算所得,Losso本就是极小值,在网络层数加深的情况下,其传递到网络起始几层的信号也将越来越弱。

随着信号越来越弱,BP梯度出现梯度消失,从而导致层数加深反而性能下降的现象出现。

  1. 深度残差

4.1.恒等映射叠加

梯度消失来源于BP梯度在传递的过程中衰减趋近于0,从而无法解析。所以若BP梯度恒大于1,则不会出现梯度消失的问题。为了解决梯度消失问题,深度残差网络引入了深度残差块,在原来的梯度基础上做了一个恒等叠加,其图示如下:

在这里插入图片描述

图.1 残差块

如上图,x为前层输出,叠加在加权函数上。在下一层对x求导时,这一项恒为1,再做BP传播时,其梯度恒大于1。

这样出现一个论文作者没有讨论,而是用实验结论代替的问题。对于当L-1层:

其导数应为:

在这里插入图片描述

在这里插入图片描述

对于L-2层:

在这里插入图片描述
在这里插入图片描述

所以即使传到到第一层,其值也远远不为0。而是前面各层的权重对于第一层的偏导之和再与1相加。

4.2.瓶颈残差模块

残差对网络深度的支持超过100层甚至达到1000层,其运算量成为一个越来越严峻的问题。为了降低运算量,伴随着残差网络,提供了名为Bottleneck Block瓶颈残差模块的解决模式。其图示如下:

在这里插入图片描述

图.2 Bottleneck Block

如图.2,右侧为基本的残差块,左侧为瓶颈残差块,其差异为在Bottleneck Block中,先对其下采样,卷积之后在上采样以降低运算量。

在MobileNetV2中依循Bottleneck Block提出反向残差的思路,与残差网络不同的是,其目的是通过反向的残差块来提升检测精度。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值