本 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 在 2012 年 ImageNet 挑战赛中获胜,标志着计算机视觉领域的一个分水岭,它证明了深度神经网络可以显著优于传统的计算机视觉方法。
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 使用一系列 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
NiN 引入了两个重要的概念:使用 1x1 卷积进行跨通道交互,以及使用全局平均池化代替全连接层进行分类。
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 在 2014 年 ImageNet 挑战赛中获胜,它引入了“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 (BatchNorm) 是一种通过在每个小批量内归一化层输入来稳定和加速深度神经网络训练的技术。
BatchNorm 通常插入在卷积层或全连接层之后、激活函数之前。在推理时,使用训练期间的总体统计数据,而不是批次统计数据。
实现细节可以在 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(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(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架构的关键特性。
| 架构 | 年 | 深度 | 参数 | 关键创新 | 最佳用途 |
|---|---|---|---|---|---|
| AlexNet | 2012 | 8 | 约6000万 | ReLU, GPU | 历史认知,基线 |
| VGG | 2014 | 16-19 | 约1.38亿 | 统一的块 | 特征提取,简洁性 |
| NiN | 2013 | ~12 | 约800万 | 1×1 conv, GAP | 内存受限的应用 |
| GoogLeNet | 2014 | 22 | 约700万 | Inception块 | 效率,多尺度特征 |
| ResNet | 2015 | 18-152+ | 1100万-6000万+ | 残差连接 | 现代任务,深度表示 |
| DenseNet | 2017 | 121-201 | 800万-2000万 | 密集连接 | 特征重用,参数效率 |
来源: chapter_convolutional-modern/index.md1-32 chapter_convolutional-modern/resnet.md1-59 chapter_convolutional-modern/densenet.md1-41
现代CNN架构通过一系列创新不断发展,以解决深度网络设计的根本性挑战。
这些架构为计算机视觉任务提供了强大的工具集,但在复杂性、参数数量、计算需求和准确性之间存在权衡。
刷新此 Wiki
最后索引时间2025 年 4 月 18 日(e6b18c)