视频封面

视频元信息

  • 课程来源:吴恩达深度学习专项课程(Deep Learning Specialization)第四门课《卷积神经网络》第二周
  • 本节标题:为什么使用残差网络(Why ResNets Work)
  • 时长:约 9 分钟

内容摘要(TL;DR)

本节解释了残差网络(ResNet)为何能在加深网络的同时不损害训练性能。核心原因在于:残差块中的跳跃连接(shortcut/skip connection)使得恒等映射极易学习,额外层至少不会让性能变差,梯度下降由此可以从一个不劣于浅层网络的基线出发,进一步优化。视频还讨论了维度匹配问题(same 卷积、Ws 矩阵)以及 ResNet 在图像任务中的实际结构。


一、问题的提出:加深网络为何会损害训练? [00:39]

关键背景:

  • 上一节视频指出:网络越深,训练集上的表现反而可能变差——这是"退化问题"(degradation problem),并非过拟合,而是训练误差本身升高。
  • 因此,直觉上我们有时会避免使用过深的网络。
  • 但残差网络(ResNet)打破了这个规律:它可以让网络变深,却几乎不损害训练集上的性能。

理解:训练集表现好是做好的前提条件(prerequisite)。如果连训练集都拟合不好,就更不可能在验证集/测试集上表现好。所以"能训练得动"是第一步。

易错点: 深层网络性能变差 ≠ 过拟合。过拟合是训练误差低、测试误差高;而退化问题是训练误差本身就变高。这是两个完全不同的问题,残差网络解决的是后者。


二、核心论证:恒等映射为何容易学习 [00:57]

2.1 实验设定

  • 假设有一个大神经网络,输入 X,输出激活值 a^[l]。
  • 现在在网络上额外添加两层,使其输出变为 a^[l+2]。
  • 将这两层构成一个残差块(residual block),加入跳跃连接。
  • 为简化论证,假设整个网络使用 ReLU 激活函数,因此所有激活值 ≥ 0(输入 X 除外,但 ReLU 输出也是非负的)。

2.2 数学推导

残差块的输出表达式为:

a^[l+2] = g(z^[l+2]) + a^[l]

其中:

z^[l+2] = W^[l+2] · a^[l+1] + b^[l+2]

推导:这里的 + a^[l] 正是来自跳跃连接(shortcut/skip connection),将浅层的激活值直接加到深层输出上。

2.3 关键观察:L2 正则化的作用

  • 如果使用 L2 正则化,权重 W^[l+2] 会被收缩(shrink)趋向于 0。
  • 如果 W^[l+2] = 0 且 b^[l+2] = 0,则:
    • z^[l+2] = 0
    • g(z^[l+2]) = g(0) = 0(ReLU 在 0 处输出 0)
    • 因此 a^[l+2] = 0 + a^[l] = a^[l]

结论:恒等映射(identity function)非常容易学习。

考点: 残差块中,如果额外层的权重被正则化趋近于 0,跳跃连接使得输出直接等于输入——即 a^[l+2] = a^[l]。这意味着额外添加的两层至少不会损害网络性能,因为它们可以"什么都不做",直接复制浅层的激活值。


三、为什么残差网络不会损害性能 [02:30]

3.1 核心逻辑

  • 对于残差块,学习恒等映射极为容易(只需让 W 和 b 趋近于 0)。
  • 因此,在大网络中间或末尾添加残差块,不会损害性能——因为网络可以选择"跳过"这些层。
  • 相比之下,普通深层网络(无跳跃连接) 中,即使想学习恒等映射也非常困难,这就是为什么很多层反而让结果变差。

3.2 从"不损害"到"有帮助"

  • 我们的目标当然不只是不损害性能,而是提升性能。
  • 如果这些额外层的隐藏单元学到了有用的特征,那么结果可以比恒等映射更好。
  • 梯度下降从一个"不劣于浅层网络"的基线出发,只可能改进解。

思考:这就像给网络一个"安全网"——最差情况是退化为浅层网络,但不会更差。在这个基础上,网络有机会学到额外的有用表示。

核心结论: 残差网络有效的主要原因在于——额外层学习恒等映射极其容易,这保证了性能不会下降;在此基线上,梯度下降可以进一步优化,运气好时甚至能提升性能。


四、维度匹配问题 [05:49]

4.1 前提条件

跳跃连接要求 z^[l+2] 和 a^[l] 具有相同的维度,才能进行逐元素相加。

4.2 解决方案一:Same 卷积

  • 在 ResNet 中大量使用 same 卷积(padding 使得输出尺寸与输入相同)。
  • Same 卷积保持维度不变,因此可以直接进行跳跃连接和加法运算。
  • 这是 ResNet 中最常用的方式。

4.3 解决方案二:Ws 矩阵变换

当输入和输出维度不同时(例如 a^[l] 是 128 维,z^[l+2] 是 256 维):

  • 引入一个额外的矩阵 Ws,维度为 256×128。
  • 计算:Ws · a^[l] → 得到 256 维向量。
  • 然后与 z^[l+2] 进行加法。

Ws 的两种选择:

方式 说明
可学习参数矩阵 Ws 作为网络参数,通过训练学习
固定矩阵(零填充) 对 a^[l] 做零填充扩展到 256 维

易错点: 跳跃连接不是无条件可用的,必须保证相加的两个张量维度一致。实际实现中,维度不匹配时需要通过 Ws 变换或调整卷积配置来解决。


五、ResNet 在图像上的实际结构 [07:24]

5.1 普通网络 vs 残差网络

  • 普通网络: 输入图像 → 多个卷积层 → Softmax 输出。
  • 残差网络: 在普通网络基础上加入跳跃连接(skip connections)。

5.2 结构细节

  • 大量使用 3×3 same 卷积,保持特征图维度不变,使 a^[l+2] + a^[l] 的加法成立。
  • 这些是卷积层而非全连接层,但因为使用 same 卷积,维度得以保留。
  • 网络中偶尔出现池化层(pooling layer),此时维度发生变化,需要像上一页那样用 Ws 矩阵做调整。
  • 典型模式:Conv → Conv → Conv → Conv → Conv → ... → 全连接层 → Softmax 预测。

理解:ResNet 的核心思想可以概括为——让网络学习"残差"(即 F(x) = H(x) - x),而不是直接学习 H(x)。当恒等映射是最优时,网络只需将残差学为 0 即可,这比直接学习恒等映射容易得多。


六、拓展与补充【拓展】

6.1 残差网络的提出背景

ResNet 由 Kaiming He 等人在 2015 年提出(论文《Deep Residual Learning for Image Recognition》),在 ImageNet 竞赛中以 152 层网络夺冠,错误率降至 3.57%,首次超越人类水平(约 5.1%)。

6.2 为什么普通深层网络难以学习恒等映射?

分析:在普通网络中,如果某几层需要学习恒等映射,意味着多层非线性变换的组合恰好等于恒等变换。这对参数的要求非常苛刻,梯度下降很难找到这样的解。而残差块通过跳跃连接,将恒等映射"内置"为默认行为(只需权重趋近 0),大大降低了学习难度。

6.3 梯度流动视角

补充:跳跃连接还为梯度提供了一条"高速公路"。反向传播时,梯度可以通过跳跃连接直接回传到浅层,缓解了梯度消失问题。这是 ResNet 能训练极深网络(如 1000+ 层)的另一个重要原因。

6.4 实际应用中的注意事项

  • 维度匹配: 在实现 ResNet 时,当特征图尺寸减半(如通过 stride=2 的卷积)时,跳跃连接也需要相应调整(通常用 1×1 卷积 + stride=2 来实现 Ws)。
  • BN 层的位置: 原始 ResNet 中,Batch Normalization 通常放在卷积层和 ReLU 之间。
  • 残差块类型: 分为 BasicBlock(两层 3×3 卷积,用于 ResNet-18/34)和 Bottleneck(1×1 + 3×3 + 1×1,用于 ResNet-50/101/152)。

踩坑提醒: 跳跃连接相加后通常还要经过 ReLU 激活。注意相加是在 ReLU 之前还是之后——原始 ResNet 中,a^[l+2] = g(z^[l+2] + a^[l]),即先相加再激活。吴恩达在视频中简化为先激活再相加,实际实现需参考原始论文。


七、本节小结

  1. 残差网络有效的核心原因: 跳跃连接使恒等映射极易学习,保证加深网络不会损害训练性能。
  2. 数学本质: 当额外层权重趋近 0 时,a^[l+2] = a^[l],网络退化为浅层网络但不劣于它。
  3. 维度匹配: 通过 same 卷积或 Ws 矩阵保证跳跃连接的加法可行。
  4. 实际结构: ResNet 以 3×3 same 卷积为主,配合池化层和全连接层,广泛用于图像分类。
  5. 下一步预告: 1×1 卷积(1×1 filter)的作用与设计动机。

关键标签 / 关键词

残差网络 #ResNet #跳跃连接 #shortcut-connection #skip-connection #恒等映射 #identity-function #退化问题 #degradation-problem #深层网络 #梯度消失 #same卷积 #维度匹配 #Ws矩阵 #L2正则化 #ReLU #吴恩达 #深度学习 #卷积神经网络 #CNN #BatchNormalization #Bottleneck #BasicBlock #ImageNet #KaimingHe


生成时间:2026-10-10 22:58:04 生成平台:VideoNote www.xygy.top