残差学习(Residual Learning)是一种深度学习中的核心训练技术,最初由 Kaiming He 等人于 2015 年提出。它主要用于解决深层神经网络训练中的“退化问题”(Degradation Problem)和梯度消失问题,使得我们可以训练出非常深的网络(例如上千层),从而显著提升模型的性能。
核心概念
传统神经网络的设计是让每一层都去学习从输入到输出的完整映射。然而,当网络变得非常深时,优化难度会急剧增加,甚至比浅层网络的误差还要高。
残差学习的核心思想是“让网络学习输入和输出之间的差异”。具体做法是:不直接让网络学习输出,而是让网络学习“输入与输出之间的差(Residual)”。这通常通过在网络中添加跳跃连接(Skip Connections)来实现。
为什么需要残差学习?
想象一下,你要学习骑自行车。如果你直接从头到尾学,可能很难。但是如果你已经会骑自行车(已经是一个很好的初始状态),现在只需要学习怎么“跳得更远”或“转弯更稳”。残差学习的逻辑也是类似的:它假设当前层的输入已经是一个很好的“初始值”,网络只需要学习如何在这个基础上进行微调或改进。
关键机制:跳跃连接
残差学习的实现离不开跳跃连接(Shortcut Connection)。这种连接会“跳过”中间的层,将输入直接传递到后面的层。
直观解释
在残差学习中,每一层都不再是一个“黑盒子”,而是被拆分成了两个部分:
- 主体学习(Residual Function):这部分负责学习输入和输出之间的差值。
- 快捷通道(Shortcut Path):这部分直接将输入传递到后面。
研究发现,这种结构有两个非常重要的好处:
经典实现:ResNet
残差学习的最著名实现是 ResNet(Residual Network),它在 2015 年的 ImageNet 挑战赛中一举夺冠。
ResNet 的核心结构是“残差块(Residual Block)”。每个残差块内部包含了几个卷积层,但它们的输入不仅经过了这些卷积层,还直接连接(相加)到它们的输出。
直观解释
- 没有残差块:网络只能一步一步地学习,像是爬楼梯,一步一个台阶,速度慢且容易卡住。
- 有残差块:网络可以选择“直接上楼”(使用快捷通道),或者“走楼梯”(使用卷积层学习),或者“两者结合”。这让网络的学习路径更加灵活。
应用场景
残差学习不仅在图像分类中表现出色(如 ResNet、VGG、DenseNet),还广泛应用于:
参考链接
- ResNet 论文(Original Paper):
- 标题:Deep Residual Learning for Image Recognition
- 作者:Kaiming He, Xiangyu Zhang, Shaoqing Ren, Jian Sun
- 链接:(https://arxiv.org/abs/1512.03385 )
- 技术科普文章:
- 标题:残差网络是深度学习中的一个重要概念
- 链接:(https://www.163.com/dy/article/HAFV0MGD0511DPVD.html )
- 简明教程:
- 标题:Datawhale AI夏令营 多模态deepfake 学习笔记
- 链接:[7](https://juejin.cn/post/7393304744696365065 ) [8]
- 学术综述:
- 标题:The Principles of Deep Learning Theory
- 链接:[9](https://indico.ihep.ac.cn/event/20858/contributions/144120/attachments/72842/88807/The%20Principles%20of%20Deep%20Learning%20Theory.pdf ) [10]
总结:残差学习通过让网络学习“变化”而不是“全貌”,让深层网络的训练变得像“爬楼梯”一样轻松。它的引入是深度学习史上的一次重大突破。