卷积神经网络残差网络

残差网络

非常非常深的神经网络是很难训练的,因为存在梯度消失和梯度爆炸问题。跳跃连接能够有效的解决这一问题,可以从某一层网络层获取激活,然后迅速反馈给另外一层,甚至是神经网络的更深层。

残差块

img

在一般情况下,a[l]输入到神经网络后得到输出a[l+2]的过程如上图,将a[l]拷贝到最后一个linear之后,Relu之前,此路径成为捷径。

img

a[l]跳过一层或者好几层,从而将信息传递到神经网络的更深层,成为捷径跳跃连接

ResNet

首先我们看一个普通网络(Plain network),这个术语来自ResNet论文。

img

把它变成ResNet的方法是加上所有跳跃连接,正如前一张幻灯片中看到的,每两层增加一个捷径,构成一个残差块。如图所示,5个残差块连接在一起构成一个残差网络。

img

如果我们使用标准优化算法训练一个普通网络,比如说梯度下降法,或者其它热门的优化算法。如果没有残差,没有这些捷径或者跳跃连接,凭经验你会发现随着网络深度的加深,训练错误会先减少,然后增多。

img

ResNet即使网络再深,训练的表现却不错

为什么残差网络会有用?

一个网络深度越深,它在训练集上训练的效率就会有所减弱。假设有一个大型神经网络,其输入X,经过一个很大的神经网络BIGNN得到输出a[l],增加深度后:

img

权重w和偏差b都取0的时候,结果表明,残差块学习这个恒等式函数并不难,跳跃连接得出a[l+2]=a[l],即使给神经网络增加了这两层,它的效率也并不逊色于更简单的神经网络,因为学习恒等函数对它来说很简单。

img

残差网络的目标不仅仅是保持网络的效率,还要提升它的效率。想象一下,如果这些隐藏层单元学到一些有用信息,那么它可能比学习恒等函数表现得更好。

假设z[l+2]与a[l]具有相同维度,所以ResNet使用了许多same卷积,所以使得a[l]的维度等于这个输出层的维度,能够添加远程连接。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值