趋近智
VGG等卷积神经网络 (CNN) 架构采用更多层后,研究人员面临一个重大问题:网络准确率会达到饱和点,然后迅速下降。这不一定是过拟合引起的,因为训练误差本身随着层数的增加而升高。这种现象被称为退化问题,它表明标准深度网络变得越来越难以优化。简单地堆叠层数使得求解器更难找到好的解,部分原因是反向传播过程中出现了梯度消失或梯度爆炸等问题。
残差网络(ResNets)的创新之处在于重新构建了问题,而不是寄希望于网络层能够直接学习一个期望的潜在映射,例如H(x)。其基本思想是让堆叠的层学习一个相对于层输入x的残差函数 F(x)。原始期望的映射H(x)则通过将输入加回去而获得:
H(x)=F(x)+x
这种重新表述是基于一个假设:优化残差映射 F(x) 比优化原始的、未引用的映射 H(x) 更容易。在极端情况下,如果恒等映射是最优的(H(x)=x),那么堆叠的层将更容易学习将 F(x) 的权重推向零,而不是试图通过多个非线性层从头开始学习恒等函数。
这种思路通过残差块实现。一个典型的残差块包含几个堆叠的层(例如,两到三个卷积层,通常带有批量归一化和ReLU激活),以及一个捷径或跳跃连接,它绕过这些层并与堆叠层的输出进行逐元素相加。
残差块的输出y的等式通常写作:
y=F(x,{Wi})+x
这里:
捷径连接通常执行恒等映射,这意味着它直接将输入x传递给加法运算。这种恒等映射很重要:它不引入额外的参数,也不增加计算复杂性。
常见残差块的示意图。输入 x 流经主路径(F(x) 涉及卷积、批量归一化和激活),同时通过恒等捷径绕过这些层。输出通过逐元素相加合并,随后进行最终激活(如ReLU)。
如果输入 x 的维度与残差函数 F(x) 的输出维度不匹配,会发生什么?这通常发生在 F(x) 中的卷积层使用大于1的步幅或改变滤波器数量时。在这种情况下,恒等捷径 x 不能直接相加。
有两种常用策略:
零填充: 用额外的零填充输入 x,以增加其维度,使其与 F(x) 的输出匹配。
投影捷径: 在捷径连接中使用投影(通常是1x1卷积)来明确匹配维度(包括空间和深度/通道维度)。等式变为:
y=F(x,{Wi})+Wsx
其中 Ws 是用于线性投影的矩阵(通过1x1卷积实现)。虽然这会增加参数和计算量,但这种方法可以提供更强的表示能力。原始ResNet论文考察了这两种方法,发现投影捷径略好,但恒等捷径在计算上更高效,并且通常也足够。
残差连接通过多种方式解决退化问题并有助于训练更深的网络:
原始的ResNet架构在逐元素相加之后应用最终激活(ReLU)。随后的工作引入了“预激活”ResNet块等变体(He 等人,2016)。在此变体中,批量归一化和ReLU激活在残差路径 F(x) 内的卷积层之前应用。这种设计可以提供更清晰的网络信息路径,并可能使优化更容易,从而带来更好的正则化和性能。
尽管ResNet专门针对 y=F(x)+x 形式推广了“残差连接”这一术语,但跳跃连接的普遍思路——即绕过一个或多个层的连接——也出现在其他成功的架构中。
例如,U-Net(常用于图像分割,将在第四章讨论)采用了长跳跃连接,将收缩路径(编码器)的特征图与扩展路径(解码器)中对应的层连接起来。这些连接有助于解码器恢复在编码器池化操作中丢失的精细空间信息。DenseNets(本章接下来会谈到)则使用了另一种更广泛的跨层特征连接形式。
这些例子表明,在不同深度战略性地连接层是一种强大的架构模式,能够改善信息流动,并使训练用于各种计算机视觉任务的深层、高性能网络成为可能。对残差连接的理解为领会这些更复杂的连接模式提供了依据。
这部分内容有帮助吗?
© 2026 ApX Machine Learning用心打造