网络太深训练难怎么办?ResNet 教你放弃一步到位转向学习残差 “拆解子问题” 来求解~

ResNet通过引入残差模块和快捷连接解决了深度神经网络训练中的退化问题。网络不再直接学习复杂的映射,而是学习输入与期望输出的差异,简化了学习过程。残差块中的快捷连接允许信息直接传递,减少了训练难度。实验显示,ResNet在ImageNet等任务上表现出色,证实了其作为一种通用网络结构的有效性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Deep Residual Learning for Image Recognition arXiv:1512.03385v1, 2015


亮点:

  • residual module;
  • bottleneck。

Abstract

  • 网络一旦变深,就很难训练, ResNet 主要解决深层网络难训练的问题。
  • 文中定义了一个 layer,参考输入层学习残差,这个操作能让网络变得更好优化,也能更好进行学习。
  • 在 ImageNet 数据集上,实现 152 层的网络,是 VGG 深度的 8 倍,但是参数更少。
  • 需要说明的是,ResNet 可以广泛提升多种任务上的表现。

Introduction

堆叠起来的卷积网络能够自然地获取多尺度层级特征,而且大致来讲,堆叠得越多拿到的层级特征就会越丰富。(其实就是模型能力更强了,只要能做好正则化不过拟合,理论上来讲,越复杂表达能力越强的模型就越好。)

问题就来了,堆得越多,模型就越好吗?回答这个问题之前,我们得先撇清一个事情就是过拟合,也就是梯度消失和梯度爆炸引起的过拟合现象,在训练集表现很好而在测试集上明显降低性能。解决过拟合问题可以有合理的模型初始化以及中间层初始化等或者其他正则化手段来解决。ok,我们暂且认定层数的堆叠增加过程中不用担心过拟合的问题,那么回到刚刚的问题,越深就越好吗?先上图如下。
在这里插入图片描述

很多实验表明,随着网络逐渐变深之后,性能会逐渐趋于饱和,随后发生严重的模型退化,degradation。而且,所提及的这种退化不是过拟合造成的,也就是说模型深度大的反而出错多。这样就导致训练很难,那么能不能解决这个问题呢?我们考虑这么一种极端情况,我使用稍微浅一点的结构(文中叫 shallow 或者 plain),然后我疯狂在最后一层后面复制粘贴哈哈哈就是玩儿。那会有什么结果呢?至少不应该模型越深犯错越多吧,最差的情况也是“不差”对不对,也就是更加坚信,网络层深加大,至少不应该更差劲。

我自己的理解是,虽然这里强调了不是梯度消失或爆炸引起的退化,但是随着模型深度的增加,这个模型更难被“监督”了。一般 loss 肯定放在较为靠后的地方,当然也有将中间结果应用 loss 的情况,我们暂且不表。好比教很小的孩子学画画,他还没有什么太多功底呢,想要达到更好的效果,必然需要老师适当讲解监督的(合适的网络深度);但是如果你搁置他太久了根本没管,让他很长时间内都自由发挥,你指望他自由发挥什么呢?肯定就更容易失误(太深的网络,loss 靠太后,中间空间太大,自由发挥跑偏了)。

文章提出了一种学习残差的方式来构建网络模型。也就是说,比如本来我想学一种映射 H ( x ) \mathcal{H}(x)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值