残差神经网络ResNet
这篇博客用通俗的语言解释一下残差神经网络ResNet
什么是残差神经网络
ResNet 是一种专门解决 “深层神经网络训练困难” 的深度学习模型,通过引入 “残差连接” 让神经网络可以轻松训练几十层、甚至上百层的深度网络,从而大幅提升模型的性能。
为什么需要残差神经网络ResNet
传统神经网络缺点
-
网络越深,训练越难:
理论上,神经网络层数越多,能提取的特征越复杂(比如识别图像时,浅层学边缘,深层学 “眼睛”“鼻子” 等复杂特征)。
但实际训练中,层数太多会导致梯度消失 / 爆炸(反向传播时梯度越传越弱,参数无法更新),或者退化问题(网络层数增加,准确率不升反降)。
ResNet的突破
通过 “残差连接”(Skip Connection),让深层网络的训练变得容易,甚至可以 “越 deep 越强大”。
残差连接:让梯度 “抄近路”
- 传统神经网络中,每层输入直接喂给下一层处理。
- ResNet 中,添加一条 “捷径”(跳过当前层,直接连接到后面的层),让当前层的输入直接参与下一层的输出计算。
类比(爬山)
- 传统网络:从山脚(输入)到山顶(输出),必须一步步爬(每层必须处理所有特征),路难走时(梯度消失)容易卡住。
- ResNet:在山中间修一条缆车(残差连接),如果某段路难走(当前层学不好特征),可以坐缆车直接跳过,让信号(梯度)更快传到山顶,同时保留之前的 “爬山成果”(已学到的特征)。
关于ResNet的数学表达
假设当前层输入是 x,期望输出是 H(x)(理想的复杂特征)。
传统网络:输出 y=F(x)(直接让当前层拟合 H(x))。
ResNet:输出 y=F(x)+x(让当前层拟合 “残差” F(x)=H(x)−x)。
ResNet的优势
- 缓解梯度消失:残差连接让梯度可以直接通过捷径反向传播,避免层层衰减。
- 支持更深的网络:ResNet-50/101/152 等经典模型证明,数百层网络仍能有效训练,且准确率显著提升。
- 结构简单通用:残差块可重复堆叠,适用于图像分类、目标检测、语义分割等多种任务。
总结
- 不硬刚,走捷径:不强迫每一层都完美拟合目标,而是允许跳过无效层,专注学习 “增量改进”。
- 化繁为简:将复杂的特征学习拆解为 “已有特征 + 残差”,降低训练难度,让深度网络真正 “深” 得有意义。