Coursera 笔记

Module 02 · Deep Convolutional Models: Case Studies

Why ResNets Work?残差网络为何有效

Coursera ↗

在本部分内容中,我们将通过一个例子来说明残差网络(ResNet)为何能够表现如此优异,尤其是在网络深度增加时,它如何依然能够有效训练,至少能在训练集(Training Set)上保持良好的表现。这是因为,通常来说,在训练集上训练得好,往往是**验证集(Hold-out Set)和测试集(Test Set)**能够表现好的前提条件。因此,能够成功训练一个 ResNet 以在训练集上表现良好,已经是迈出了成功的一步。


ResNet 的优势:深度网络的训练

深度网络的训练问题

在之前的视频中,我们看到如果将网络做得更深,可能会影响网络在训练集上的表现。这也是为什么有时我们不希望网络过深的原因。然而,这种情况对于 ResNet 来说却并不成立,或者说这种影响要小得多。接下来,让我们通过一个具体的例子来展示为什么 ResNet 能够应对这一挑战。

添加额外的层进行网络修改

假设您有一个大神经网络,它的输入为 X,输出是一个激活值 a[l]。接下来,我们对该网络进行修改,将其深度增加。具体操作是:我们保持原始的大神经网络,输出仍然是 a[l],然后在网络中间添加两个额外的层,最终输出 a[l+2]。并且,将这些额外的层构建为一个 残差块(Residual Block),引入跳跃连接(Shortcut Connection)。

为了简化我们的讨论,假设该网络中使用的是ReLU激活函数,即所有激活值都大于或等于零(输入 X 除外)。这样,a[l+2] 的计算公式为:

什么是“跳跃连接”如何影响网络?

这个公式的变化来源于跳跃连接,a[l] 被直接添加到输出中。这就使得 ResNet 的残差块可以学到 恒等映射(Identity Mapping)。事实上,恒等映射的学习非常简单,网络可以轻松地将 a[l] 复制到 a[l+2],这也意味着在网络中增加这两层(即增加残差块)并不会损害网络的表现,因为网络能够轻松学习到这种恒等映射。

这就解释了为什么在深度网络中增加额外的层并不会影响性能,甚至可能保持网络的性能不变,或者更好地适应训练数据。


深度网络中的困难与 ResNet 的优势

深度网络的挑战

对于没有跳跃连接的平坦网络来说,随着网络层数的增加,学习恒等映射变得越来越困难。实际中,增加的层数往往导致网络性能下降,而不是提升。这是因为在没有残差块的深度网络中,优化算法难以找到有效的参数来学习恒等映射,导致梯度的传播变得困难,最终造成性能的下降。

ResNet 的解决方案

然而,ResNet通过跳跃连接使得恒等映射的学习变得简单。这保证了网络能够在增加额外层的情况下保持良好的表现,而不容易出现性能下降。更进一步,这些额外的层可能通过学习有用的特征,甚至能提高网络的性能。


跳跃连接的实现细节:维度对齐

确保维度一致性

在使用残差连接时,假设 z[l+2] 和 a[l] 具有相同的维度。为了实现这一点,ResNet 中广泛使用了同卷积(Same Convolutions)。同卷积可以确保输入和输出的维度保持一致,从而方便进行加法操作。

如果输入和输出的维度不同,例如,输入 a[l] 是128维,输出 z[l+2] 是256维,那么我们需要通过引入一个额外的矩阵 WsW_s 来调整维度,使得两个向量的维度一致。具体来说,WsW_s 是一个 256×128256 \times 128 的矩阵,将 a[l] 从128维转换为256维,从而使得加法操作在相同维度的向量之间进行。


ResNet 在图像上的应用

ResNet 架构与卷积操作

在图像处理中,ResNet 通常使用多个卷积层进行特征提取。以下是图像分类的一个基本示例:

  1. 平坦网络(Plain Network):
  • 输入一张图像,经过多个卷积层后,最后通过Softmax输出结果。
  1. 转为 ResNet:
  • 通过添加跳跃连接,网络转变为 ResNet 架构。

在这个过程中,大部分卷积层使用了3x3的同卷积(Same Convolutions),因此维度得以保持一致。这使得在残差块中的加法操作得以顺利执行。每个卷积操作后,可能会进行池化(Pooling),如果池化操作改变了维度,我们会通过额外的矩阵(如 WsW_s)进行调整,以确保维度一致。


ResNet 网络结构示例

ResNet 的常见结构包括:

  • 多个卷积层(Conv)
  • 池化层(Pooling)
  • 每个卷积层后添加跳跃连接

最终,网络会通过一个**全连接层(Fully Connected Layer)**来做分类预测,通常使用 Softmax 激活函数来输出结果。


总结与展望

  1. ResNet 的关键在于通过 跳跃连接(Shortcut Connections),使得网络能够在添加更多层时仍能保持或提高性能。
  2. 这些 残差块 使得网络能够轻松学习 恒等映射,从而避免了深度网络中常见的训练困难。
  3. 同卷积(Same Convolutions) 保证了输入输出维度的一致性,使得加法操作能够顺利进行。
  4. ResNet 被广泛应用于图像分类任务,通过卷积层和池化层的组合,实现了高效的特征提取和分类。

接下来,我们将探索一个新的概念——1x1卷积(1x1 Convolutions),这是一个非常有趣的思想。让我们在下一期视频中继续深入了解! 🎥