菜单

现代 CNN 架构

相关源文件

本 Wiki 页面介绍了 D2L.ai 存储库中实现的现代卷积神经网络 (CNN) 架构。它涵盖了自 LeNet 以来出现的、革新了计算机视觉的具有影响力的 CNN 设计,包括 AlexNet、VGG、NiN、GoogLeNet、ResNet 和 DenseNet。这些网络为计算机视觉领域的深度学习奠定了基础,并且在当前的研究和应用中仍然具有重要意义。

有关卷积神经网络基础知识的信息,请参阅 CNN 架构

现代卷积神经网络架构的演进

现代卷积神经网络架构是通过一系列创新演变而来的,这些创新解决了早期模型的局限性,使得更深的网络能够实现更强的特征学习能力。

来源: chapter_convolutional-modern/index.md1-32 chapter_convolutional-modern/alexnet.md1-334 chapter_convolutional-modern/vgg.md1-281

AlexNet:深度学习的突破

AlexNet 在 2012 年 ImageNet 挑战赛中获胜,标志着计算机视觉领域的一个分水岭,它证明了深度神经网络可以显著优于传统的计算机视觉方法。

关键创新

  1. ReLU 激活:用 ReLU 替代 sigmoid,以实现更快的训练和更好的梯度流
  2. Dropout:添加了 Dropout 层以减少过拟合
  3. GPU 实现:利用 GPU 加速训练
  4. 数据增强:采用了广泛的数据增强技术

架构概述

AlexNet 由 5 个卷积层后接 3 个全连接层组成。第一个卷积层使用 11x11 的大卷积核和步长 4 来捕捉大的感受野,而后续层则使用较小的卷积核。

实现细节可以在 chapter_convolutional-modern/alexnet.md109-139中找到。

来源: chapter_convolutional-modern/alexnet.md21-101 chapter_convolutional-modern/alexnet.md109-139

VGG:用统一的块进行简化

VGG 由牛津大学视觉几何小组开发,它推广了使用具有统一结构的重复块的想法,使得网络设计更加系统化和可扩展。

VGG 块设计

VGG 使用一系列 3x3 卷积层后接一个最大池化层。这个简单的构建块在整个网络中重复使用,并逐渐增加通道数。

网络配置

VGG 有几种变体,其中 VGG-16 和 VGG-19 是最常见的(数字表示权重层的数量)

VGG Block Organization:
- VGG-11: [1, 1, 2, 2, 2] convolutional layers in each block
- VGG-13: [2, 2, 2, 2, 2] convolutional layers in each block
- VGG-16: [2, 2, 3, 3, 3] convolutional layers in each block
- VGG-19: [2, 2, 4, 4, 4] convolutional layers in each block

VGG 块的实现可以在 chapter_convolutional-modern/vgg.md30-93中找到。

来源: chapter_convolutional-modern/vgg.md1-29 chapter_convolutional-modern/vgg.md30-93 chapter_convolutional-modern/vgg.md94-223

Network in Network (NiN):增强每个像素的处理能力

NiN 引入了两个重要的概念:使用 1x1 卷积进行跨通道交互,以及使用全局平均池化代替全连接层进行分类。

NiN 块设计

NiN 块应用一个标准的卷积,然后应用多个 1x1 卷积,有效地对跨通道的每个像素位置应用 MLP。

架构和创新

NiN 用全局平均池化取代了网络末端的大型全连接层,显著减少了参数数量并防止了过拟合。

NiN 块的实现可以在 chapter_convolutional-modern/nin.md26-86中找到。

来源: chapter_convolutional-modern/nin.md1-25 chapter_convolutional-modern/nin.md26-86 chapter_convolutional-modern/nin.md87-210

GoogLeNet:带有 Inception 的并行路径

GoogLeNet 在 2014 年 ImageNet 挑战赛中获胜,它引入了“Inception”模块,该模块具有并行处理路径,可以同时捕捉多尺度的特征,同时控制计算复杂度。

Inception 模块

Inception 模块在更耗时的 3x3 和 5x5 卷积之前使用 1x1 卷积作为降维层,从而使计算成本可控。

网络架构

GoogLeNet 由 9 个 Inception 模块组成,并在训练期间增加了额外的辅助分类器,以帮助缓解这个深度网络中的梯度流问题。

Inception 模块的实现可以在 chapter_convolutional-modern/googlenet.md25-154中找到。

来源: chapter_convolutional-modern/googlenet.md1-24 chapter_convolutional-modern/googlenet.md25-154 chapter_convolutional-modern/googlenet.md155-416

Batch Normalization:稳定深度网络

Batch Normalization (BatchNorm) 是一种通过在每个小批量内归一化层输入来稳定和加速深度神经网络训练的技术。

BatchNorm 机制

BatchNorm 通常插入在卷积层或全连接层之后、激活函数之前。在推理时,使用训练期间的总体统计数据,而不是批次统计数据。

Batch Normalization 的优势

  1. 更快的收敛:允许更高的学习率
  2. 降低敏感性:对初始化要求不高
  3. 正则化效果:由于批次统计数据中的噪声而产生轻微的正则化效果
  4. 更深的网络的训练:能够训练更深的网络

实现细节可以在 chapter_convolutional-modern/batch-norm.md96-207中找到。

来源: chapter_convolutional-modern/batch-norm.md1-95 chapter_convolutional-modern/batch-norm.md96-207 chapter_convolutional-modern/batch-norm.md363-551

ResNet:赋能超深度网络

ResNet(Residual Network)通过引入跳跃连接,极大地推动了深度学习的发展,使得训练极深的神经网络成为可能。它在2015年ImageNet竞赛中以一个152层的网络夺冠。

残差块设计

ResNet 的关键创新在于其短路连接(shortcut connection),它允许梯度直接流经网络,从而解决了非常深的网络中梯度消失的问题。

网络架构

ResNet 有多种深度(例如 ResNet-18、ResNet-34、ResNet-50、ResNet-101、ResNet-152),更深的变体使用瓶颈块(bottleneck block)来提高效率。

残差块的实现可以在 chapter_convolutional-modern/resnet.md60-181 中找到。

来源: chapter_convolutional-modern/resnet.md1-59 chapter_convolutional-modern/resnet.md60-181 chapter_convolutional-modern/resnet.md249-432

DenseNet:最大化信息流

DenseNet(Dense Convolutional Network)通过将每个层与密集块(dense block)中的所有后续层连接起来,进一步扩展了跳跃连接的概念,实现了最大化信息流。

密集块和过渡层

在密集块中,每层通过拼接(concatenation)接收来自所有先前层的特征图。过渡层使用 1×1 卷积和下采样来控制特征图尺寸的增长。

网络架构

DenseNet 由多个由过渡层连接的密集块组成。

密集块的实现可以在 chapter_convolutional-modern/densenet.md42-180 中找到。

来源: chapter_convolutional-modern/densenet.md1-41 chapter_convolutional-modern/densenet.md42-180 chapter_convolutional-modern/densenet.md218-449

模型比较和选择

此表比较了所涵盖的现代CNN架构的关键特性。

架构深度参数关键创新最佳用途
AlexNet20128约6000万ReLU, GPU历史认知,基线
VGG201416-19约1.38亿统一的块特征提取,简洁性
NiN2013~12约800万1×1 conv, GAP内存受限的应用
GoogLeNet201422约700万Inception块效率,多尺度特征
ResNet201518-152+1100万-6000万+残差连接现代任务,深度表示
DenseNet2017121-201800万-2000万密集连接特征重用,参数效率

实现复杂度与性能的权衡

来源: chapter_convolutional-modern/index.md1-32 chapter_convolutional-modern/resnet.md1-59 chapter_convolutional-modern/densenet.md1-41

结论

现代CNN架构通过一系列创新不断发展,以解决深度网络设计的根本性挑战。

  1. AlexNet 展示了深度学习在计算机视觉中的强大能力。
  2. VGG 显示了架构简洁性和统一性的优势。
  3. NiN 引入了 1×1 卷积和全局平均池化(GAP)。
  4. GoogLeNet 开创了用于多尺度处理的多路径架构。
  5. ResNet 通过残差连接解决了深度网络训练问题。
  6. DenseNet 通过密集连接最大化了信息流。

这些架构为计算机视觉任务提供了强大的工具集,但在复杂性、参数数量、计算需求和准确性之间存在权衡。

来源: chapter_convolutional-modern/index.md1-32