--- created: 2025-08-03 21:19:11 tags: - "Research" - "基础" - "Transformer" - "残差连接" - "ResNet" --- ### 为什么要跳过链接? 深度神经网络的美妙之处在于它们可以比浅层神经网络更有效地学习复杂的功能。而在训练深度神经网络时,模型的性能随着架构深度的增加而下降。这被称为**退化问题**。为什么会产生这样的问题? 可能的原因之一是过度拟合。随着深度的增加,模型往往会过度拟合,但这里的情况并非如此。从下图可以看出,56 层的深层网络比 20 层的浅层网络具有更多的训练误差。**较深的模型表现不如浅模型好。** 显然,过拟合不是这里的问题。 ![image.png|500](https://raw.githubusercontent.com/student-zsbd/myImageHost/master/20241030232304.png) 另一个可能的原因可能是梯度消失和 / 或梯度爆炸问题。然而,ResNet(https://arxiv.org/abs/1512.03385) 的作者(He 等人)认为,使用批量归一化和通过归一化正确初始化权重可确保梯度具有合适的标准。但是,这里出了什么问题?让我们通过构造来理解这一点。 考虑一个在数据集上训练的浅层神经网络。此外,考虑一个更深的网络,其中初始层与浅层网络(下图中的蓝色层)具有相同的权重矩阵,并添加了一些额外的层(绿色层)。我们将添加层的权重矩阵设置为恒等矩阵(恒等映射)。 从这个构造来看,更深的网络不应产生比其浅的网络更高的训练误差,因为我们实际上是在具有附加恒等层的更深网络中使用浅模型的权重。 但实验证明,与浅层网络相比,深层网络会产生较高的训练误差。这表明**更深层无法学习甚至恒等映射**。 >训练精度的下降表明并非所有系统都同样易于优化。 主要原因之一是权重的随机初始化,均值在零、L1 和 L2 正则化附近。结果,模型中的权重总是在零左右,因此更深的层也无法学习恒等映射。 这里出现了**跳过连接**的概念,它使我们能够训练非常深的神经网络。 ### 本质 1. **直接连接**: 跳跃链接的本质是在神经网络中创建一个捷径(shortcut),允许输入直接跳过一个或多个层被传递到后面的层。具体来说,就是在某个层的输入和输出之间添加一条直接的连接路径。 2. **恒等映射**: 在实现上,跳跃链接通常通过一个恒等操作(即直接传递输入,不做任何变换)来实现。这意味着,*如果一个层或多个层的输出不足以改善模型性能,那么这些层的效果可以通过跳跃链接被“绕过”。* 3. **辅助训练**: 跳跃链接提供了一个辅助路径,帮助梯度在反向传播过程中更直接地流向网络的早期层,这有助于*解决深层网络中的梯度消失问题*。 ### 作用 1. **缓解梯度消失问题**: 在深层网络中,梯度可能会随着网络层的增加而逐渐减小,导致网络的早期层难以训练。跳跃链接通过直接连接层与层之间的输入和输出,有助于梯度的直接回传,从而缓解梯度消失问题。 2. **提高训练稳定性**: 跳跃链接可以提高网络训练的稳定性。由于梯度可以直接流向早期层,因此可以更有效地更新这些层的权重,即使在网络非常深的情况下也是如此。 3. **特征融合**: 跳跃链接允许网络在不同层之间融合特征。通过将输入直接添加到输出,跳跃链接使得网络能够结合低层和高层的特征信息,这有助于模型捕捉更丰富的数据表示。 4. **提高模型性能**: 跳跃链接有时可以提高模型的性能。它们提供了一个额外的路径,允许模型学习到更复杂的函数映射。在某些情况下,即使某些层没有显著改善性能,跳跃链接也能确保这些层不会对模型的整体性能产生负面影响。 5. **简化网络设计**: 跳跃链接简化了网络设计。设计师不需要过分担心深层网络中的信息丢失问题,因为跳跃链接提供了一种机制来确保信息的流动。 6. **实现深度网络的训练**: 没有跳跃链接,训练非常深的网络是非常困难的。跳跃链接使得训练深度达到数十层甚至数百层的网络成为可能,这在诸如ResNet等网络中得到了广泛应用。 ### 实现方法 通常是简单的相加操作。在深度学习模型中,尤其是在使用残差网络(ResNet)和[[Transformer]]等架构时,跳跃链接通过将一个层的输入直接相加到该层的输出上来实现。这种设计允许网络学习到恒等映射以外的内容,同时确保梯度能够直接流向网络的早期层。 具体来说,对于一个具有跳跃链接的层,其计算过程可以表示为: $$\text{Output} = \text{Layer}(\text{Input}) + \text{Input} $$ 这里的“Layer”表示该层的权重和激活函数等操作,而“Input”和“Output”分别代表层的输入和输出。在实际操作中,为了使维度匹配,跳跃链接的输入和输出通常需要经过适当的调整,例如使用1x1的卷积或者线性层来匹配特征的维度。