吴恩达深度学习课程四:计算机视觉 第二周:经典网络结构(三)——残差网络


引言:深度网络的挑战与残差网络的诞生

在深度学习领域,随着网络深度的增加,模型性能通常会得到提升。然而,当网络变得非常深时,训练过程会

面临梯度消失或梯度爆炸的问题,导致模型难以收敛。这种现象在2015年之前被认为是深度神经网络难以逾

越的障碍。 2015年,微软亚洲研究院的何恺明团队提出了残差网络(Residual Networks, ResNets),通过

引入"跳跃连接"(skip connections)彻底改变了这一局面。ResNets不仅在ImageNet图像识别挑战中一举

夺冠,还开创了深度学习模型设计的新范式。

一、残差网络的核心思想

1.1 传统深度网络的困境

在传统卷积神经网络中,信息传递路径是单一的:输入通过一系列卷积层、池化层和非线性激活函数,最终到

达输出。随着网络深度的增加,这种线性信息流会导致梯度在反向传播过程中逐渐衰减或爆炸,使得深层网络

难以训练。 实验表明,当网络深度超过一定层数后,训练误差反而会上升,这种现象被称为"退化问题"(degradation problem)。

1.2 残差学习的思想突破

ResNets的核心创新在于重新定义了网络学习的目标。传统网络直接学习输入到输出的映射H(x),而残差网

络则学习残差函数F(x) = H(x) - x,使得原始输入x可以通过跳跃连接直接添加到输出中。这种设计相当于让

网络专注于学习输入和输出之间的差异(残差),而不是直接学习完整的映射关系。

数学表达为: y = F(x, {Wi}) + x

其中,x是输入,y是输出,F(x, {Wi})是残差函数,{Wi}是网络参数。这种设计使得网络在反向传播时,梯度

可以直接通过跳跃连接传递,避免了梯度消失问题。

1.3 跳跃连接(Shortcut Connection)的物理意义

跳跃连接是ResNet最关键的创新之一。它包含两种形式:

  1. 恒等连接(Identity Shortcut):当输入和输出的维度相同时,直接相加。

  2. 投影连接(Projection Shortcut):当输入和输出的维度不同时,使用1×1卷积进行维度匹配。

这种设计使得网络可以更容易地学习恒等映射(identity mapping),即使在某些层中参数更新导致性能

下降,跳跃连接也能保证至少不比浅层网络差。

二、残差网络的结构设计

2.1 残差块(Residual Block)的基本结构

最基本的残差块由两个3×3卷积层组成,每个卷积层后接批量归一化(Batch Normalization)和ReLU激

活函数。跳跃连接将输入直接添加到输出中。这种设计有几个关键特点:

  • 卷积层使用相同数量的通道,确保输入和输出维度匹配。

  • 批量归一化加速了训练过程,并减少了层间协变量偏移。

  • ReLU激活函数引入了非线性,增强了模型的表达能力。

2.2 瓶颈结构(Bottleneck Design)

为了进一步减少计算量,ResNet引入了瓶颈结构。每个残差块由三个卷积层组成:第一个是1×1卷积(降维

),第二个是3×3卷积(提取特征),第三个是1×1卷积(升维)。这种设计在保持性能的同时,大大减少

了参数量。例如,ResNet-50和ResNet-152都采用了这种瓶颈结构。

2.3 网络深度的扩展

ResNet展示了网络深度可以扩展到前所未有的程度。ResNet-34有34层,ResNet-50有50层,而ResNet-1

52更是达到了152层。随着网络深度的增加,ResNet的性能持续提升,而传统深度网络则会出现性能下降。

这种特性使得ResNet成为后续许多先进模型的基础。

三、残差网络的训练技巧

3.1 初始化策略

ResNet采用He初始化(也叫MSRA初始化),这种初始化方法考虑了ReLU激活函数的特性,能够有效缓解

梯度消失问题。对于1×1卷积层,初始化权重时考虑了输入和输出的通道数,确保初始化的权重不会太大或太小。

3.2 批量归一化(Batch Normalization)

批量归一化是ResNet能够成功训练的关键技术之一。它在每个卷积层后、ReLU激活函数前进行归一化,解

决了内部协变量偏移问题,使得深层网络的训练更加稳定。批量归一化还允许使用更高的学习率,加速了收

敛过程。

3.3 学习率调度

ResNet采用了分阶段(stage-wise)的学习率调度策略。网络被分为多个阶段(stage),每个阶段包含多个

残差块。在训练过程中,学习率会在每个阶段结束时进行衰减。这种策略有助于网络在训练初期快速收敛,在

后期进行精细调整。

3.4 数据增强

为了进一步提高模型的泛化能力,ResNet采用了多种数据增强技术,包括随机裁剪、水平翻转、颜色空间变

换等。这些技术增加了训练数据的多样性,使得模型能够更好地适应各种实际场景。

四、残差网络的变体与改进

4.1 Pre-ResNet

Pre-ResNet是ResNet的一种变体,它将批量归一化层和ReLU激活函数从卷积层后移动到了卷积层前。这种

设计使得网络在训练过程中更加稳定,梯度流动更加顺畅。Pre-ResNet在许多任务上都取得了比原始ResNet更好的性能。

4.2 Wide ResNet

Wide ResNet通过增加每个残差块的宽度(即通道数)来提高性能,而不是增加网络深度。这种设计在保持

计算量相对较低的同时,能够获得比深层ResNet更好的性能。Wide ResNet在CIFAR等数据集上表现尤为出色。

4.3 ResNeXt

ResNeXt引入了分组卷积(grouped convolution)的概念,将传统的卷积操作分解为多个分组卷积的操作。

这种设计增加了模型的多样性,同时保持了计算效率。ResNeXt在许多计算机视觉任务上都取得了state-of-the-art的性能。

五、残差网络的应用与影响

5.1 图像分类

ResNet在ImageNet图像分类挑战中取得了突破性的成绩,其变体ResNet-152的错误率达到了3.57%,超过

了人类水平。这使得ResNet成为图像分类任务的基准模型,被广泛应用于各种实际场景。

5.2 目标检测

ResNet被用作目标检测网络(如Faster R-CNN、Mask R-CNN)的骨干网络(backbone),提供了强大的

特征提取能力。ResNet的跳跃连接结构使得网络能够更好地捕捉不同尺度的目标特征。

5.3 语义分割

在语义分割任务中,ResNet被用作编码器(encoder),与解码器(decoder)结合形成全卷积网络(FCN)。

ResNet的深层特征提取能力使得模型能够更好地理解图像内容,提高分割精度。

5.4 风格迁移

ResNet还被用于图像风格迁移任务。通过将图像内容表示为ResNet的中间特征,可以实现高效的内容和风格

分离,生成具有艺术风格的图像。

六、残差网络的局限性与未来方向

6.1 计算资源需求

虽然ResNet相对高效,但非常深的ResNet变体(如ResNet-200)仍然需要大量的计算资源。如何设计更加高

效的网络结构,减少计算量和内存占用,是未来的一个重要方向。

6.2 动态网络结构

目前的ResNet结构是静态的,无法根据输入数据动态调整网络结构。未来的研究可能会探索动态网络结构,使

网络能够根据输入数据的复杂性自动调整深度和宽度。

6.3 与其他技术的结合

ResNet可以与注意力机制、图神经网络等技术结合,进一步提高模型的性能。例如,将注意力机制引入残差块

,可以使网络更加关注重要的图像区域。

结语

残差网络通过引入跳跃连接,解决了深度神经网络中的梯度消失问题,使得训练非常深的网络成为可能。

ResNet不仅在图像分类任务中取得了突破性的成绩,还成为许多计算机视觉任务的基础模型。随着深度学习技

术的不断发展,ResNet及其变体将继续在计算机视觉领域发挥重要作用,推动人工智能技术的进步。