【人工智能99问】残差链接是什么,是如何起作用的?(28/99)
文章目录
- 残差连接
- 残差连接是什么
- 残差连接的作用
- 残差连接为什么能缓解“退化问题”
- 概括
残差连接
残差连接是什么
残差连接(Residual Connection),也称为跳跃连接(Skip Connection),是深度学习中一种重要的网络设计技巧,最早在ResNet(残差网络)中被提出。它的核心思想是在网络的某一层与后面的层之间建立直接的“短路”连接,允许输入数据(或特征)绕过中间的部分网络层,直接传递到后续层中。
残差连接的作用
主要解决深层神经网络训练中的“退化问题”(Degradation Problem):
在传统的深层神经网络中(如VGG),当网络层数增加到一定程度后,模型的性能会出现明显下降——不仅测试误差上升,连训练误差也会上升(并非过拟合,过拟合是训练误差低但测试误差高)。这种退化现象的本质是:随着网络层数加深,梯度在反向传播过程中会逐渐消失或爆炸,导致早期网络层的参数难以被有效更新,模型无法学到有意义的特征。
残差连接为什么能缓解“退化问题”
残差连接通过以下机制缓解了退化问题:
-
梯度直接传递,缓解梯度消失
传统网络中,梯度从后层向前层传播时,需要经过多层参数的链式求导,容易导致梯度值变得极小(梯度消失)或极大(梯度爆炸)。
残差连接通过“跳跃”结构,让梯度可以不经过中间层的复杂变换,直接从后层传递到前层。例如,假设某残差块的输出为y = F(x) + x
(其中x
是输入,F(x)
是该块内的卷积等操作),反向传播时,损失对x
的梯度为∂Loss/∂x = ∂Loss/∂y * (∂F/∂x + 1)
。这里的“+1”来自于y
对x
的直接求导(∂(x)/∂x = 1
),确保梯度不会因多层传递而过度衰减,使得浅层网络的参数能被有效更新。 -
学习残差而非绝对映射,降低学习难度
传统网络要求每一层学习输入到输出的“绝对映射”(如H(x)
),而残差连接让网络层只需学习“残差”(即F(x) = H(x) - x
),最终输出为H(x) = F(x) + x
。
当网络需要学习恒等映射(即输入与输出一致时),残差F(x)
只需学习为0即可,这比直接学习恒等映射H(x) = x
更容易。这种设计确保了“深层网络至少不会比浅层网络差”——即使增加层数,模型也能通过学习0残差来保持原有性能,从而避免退化。
概括
残差连接通过改善梯度流动和降低学习难度,使得训练上千层的深层网络成为可能,为后续深度学习模型的深度化发展奠定了基础。