残差连接

残差连接是什么

残差连接(Residual Connection),也称为跳跃连接(Skip Connection),是深度学习中一种重要的网络设计技巧,最早在ResNet(残差网络)中被提出。它的核心思想是在网络的某一层与后面的层之间建立直接的“短路”连接,允许输入数据(或特征)绕过中间的部分网络层,直接传递到后续层中。
在这里插入图片描述

残差连接的作用

主要解决深层神经网络训练中的“退化问题”(Degradation Problem)
在传统的深层神经网络中(如VGG),当网络层数增加到一定程度后,模型的性能会出现明显下降——不仅测试误差上升,连训练误差也会上升(并非过拟合,过拟合是训练误差低但测试误差高)。这种退化现象的本质是:随着网络层数加深,梯度在反向传播过程中会逐渐消失或爆炸,导致早期网络层的参数难以被有效更新,模型无法学到有意义的特征。

残差连接为什么能缓解“退化问题”

残差连接通过以下机制缓解了退化问题:

  1. 梯度直接传递,缓解梯度消失
    传统网络中,梯度从后层向前层传播时,需要经过多层参数的链式求导,容易导致梯度值变得极小(梯度消失)或极大(梯度爆炸)。
    残差连接通过“跳跃”结构,让梯度可以不经过中间层的复杂变换,直接从后层传递到前层。例如,假设某残差块的输出为 y = F(x) + x(其中 x 是输入,F(x) 是该块内的卷积等操作),反向传播时,损失对 x 的梯度为 ∂Loss/∂x = ∂Loss/∂y * (∂F/∂x + 1)。这里的“+1”来自于 yx 的直接求导(∂(x)/∂x = 1),确保梯度不会因多层传递而过度衰减,使得浅层网络的参数能被有效更新。

  2. 学习残差而非绝对映射,降低学习难度
    传统网络要求每一层学习输入到输出的“绝对映射”(如 H(x)),而残差连接让网络层只需学习“残差”(即 F(x) = H(x) - x),最终输出为 H(x) = F(x) + x
    当网络需要学习恒等映射(即输入与输出一致时),残差 F(x) 只需学习为0即可,这比直接学习恒等映射 H(x) = x 更容易。这种设计确保了“深层网络至少不会比浅层网络差”——即使增加层数,模型也能通过学习0残差来保持原有性能,从而避免退化。

概括

残差连接通过改善梯度流动和降低学习难度,使得训练上千层的深层网络成为可能,为后续深度学习模型的深度化发展奠定了基础。

更多推荐