7.6 经典 CNN 架构详解:从 1998 到 2022 的创新之路
每一个经典架构都解决了一个核心问题,理解它们就是理解 CNN 的进化史。
7.6.1 LeNet-5(1998):一切开始的地方
Yann LeCun 在 1998 年设计了 LeNet-5,用于手写数字识别(MNIST 数据集)。结构极其简单:Conv → Pool → Conv → Pool → FC → FC → Output,总共 7 层(5 个有参数的层,所以叫 LeNet-5)。
核心创新:证明了卷积+池化+全连接这个范式有效。在 1998 年,没有 GPU,没有 ReLU(用的是 Sigmoid/Tanh),没有 BatchNorm,没有 Dropout。LeNet-5 用纯 CPU 训练,在 MNIST 上达到 99% 以上的准确率,被美国银行用于支票上的手写数字识别。
为什么重要:LeNet-5 定义了 CNN 的基本架构范式,此后 20 多年所有 CNN 都是它的变体。理解了 LeNet-5,你就理解了 CNN 的骨架。
7.6.2 AlexNet(2012):深度学习引爆点
Alex Krizhevsky、Ilya Sutskever 和 Geoffrey Hinton 在 2012 年 ImageNet 竞赛中以 15.3% 的 top-5 错误率夺冠(第二名是 26.2%),差距大到让所有人震惊。
核心创新:
- GPU 训练:第一次用两块 GTX 580 GPU(各 3GB 显存)训练 CNN,模型被拆成两半分别放在两块 GPU 上。没有 GPU,AlexNet 不可能训练出来。
- ReLU 激活函数:用 ReLU 替代 Sigmoid/Tanh。ReLU 的梯度不饱和特性让深层网络的训练变得可行。
- Dropout:在全连接层使用 Dropout(p=0.5),防止过拟合。AlexNet 有 6000 万参数,但 ImageNet 只有 120 万张图,没有 Dropout 根本训练不动。
- 数据增强:随机裁剪、水平翻转、颜色抖动——凭空增加了训练数据的多样性。
- 局部响应归一化(LRN):后来被 BatchNorm 取代,但在当时是重要的正则化手段。
为什么重要:AlexNet 是”深度学习革命”的起点。它证明了”大数据 + GPU + 深度网络”这条路线可行,直接开启了此后十年的 AI 热潮。
7.6.3 VGG(2014):深度就是力量,简单就是美
牛津大学的 Visual Geometry Group 提出了 VGG-16 和 VGG-19。核心思想:全部用 3x3 卷积,不用大卷积核,不用花哨的结构。
核心创新:
- 两个 3x3 卷积的感受野 = 一个 5x5 卷积,但参数更少(18 vs 25),非线性更多
- 三个 3x3 卷积的感受野 = 一个 7x7 卷积,参数更少(27 vs 49),非线性更多
- 结构极其规整:卷积层堆叠 → 池化降采样 → 再堆叠 → 再降采样 → 全连接层
为什么重要:VGG 证明了”深度”本身就是一种优势——不需要复杂的结构设计,只要堆得够深(16-19 层),用最小的 3x3 卷积核,就能达到很好的效果。VGG 的预训练模型至今仍被广泛用于风格迁移和特征提取。
VGG 的问题:全连接层参数太多(VGG-16 有 1.38 亿参数,其中 1.2 亿在全连接层)。后来的 ResNet 用全局平均池化替代了这些全连接层。
7.6.4 GoogLeNet / Inception(2014):多尺度并行
Google 的 Szegedy 等人提出 Inception 模块:在同一层,并行运行 1x1、3x3、5x5 卷积和 3x3 最大池化,然后把结果拼接在一起。让网络自己决定”在每个位置用多大的感受野”。
核心创新:
- Inception 模块:多尺度并行处理。1x1 卷积捕获局部细节,3x3 捕获中等范围,5x5 捕获更大范围,池化提供另一种视角。
- 1x1 卷积降维:在 3x3 和 5x5 卷积之前先用 1x1 卷积减少通道数,大幅降低计算量。这是一个关键技巧——1x1 卷积不改变空间尺寸,但可以压缩/扩展通道维度。
- 辅助分类器:在网络中间层加辅助分类器(额外损失),帮助梯度传播到浅层——这是”深监督”的早期实践。
为什么重要:GoogLeNet 证明了”效率”——22 层,但参数只有 AlexNet 的 1/12(约 500 万 vs 6000 万)。说明精心设计的架构比盲目堆叠有效得多。
7.6.5 ResNet(2015):残差连接,让深度成为可能
何恺明等人提出的 ResNet,核心创新是残差连接(Residual Connection/Skip Connection):
output = F(x) + x
其中 F(x) 是两层卷积的输出,x 是输入直接跳过来的。如果 F(x) 学不到有用的东西(梯度消失),至少 x 可以原样传过去——网络不会变差,只会变好。
核心创新:
- 残差块:每个块包含两个 3x3 卷积层,输入直接跳到输出相加。如果某个层学不到东西,
F(x) ≈ 0,输出≈ x,这一层就变成了恒等映射——不会伤害网络性能。 - 批归一化(BatchNorm):每个卷积层后用 BatchNorm,稳定训练。
- 瓶颈块:ResNet-50/101/152 用 1x1→3x3→1x1 的”瓶颈”设计——先用 1x1 降维,3x3 在低维空间计算,再用 1x1 升维。大幅减少计算量。
- 152 层的可训练性:在 ResNet 之前,20 层的 VGG 几乎是极限。ResNet 做到了 152 层,且训练稳定、效果更好。
为什么重要:残差连接是深度学习史上最重要的创新之一。它不仅让 152 层的 CNN 成为可能,更直接影响了 Transformer——Transformer 的残差连接和 LayerNorm 组合,本质上和 ResNet 的残差连接+BatchNorm 是同一个理念。可以说,没有 ResNet 就没有 Transformer。
7.6.6 DenseNet(2017):密集连接,极致特征复用
每一层的输入不仅仅是前一层的输出,而是前面所有层的输出拼接在一起。如果 ResNet 是”一跳”(skip connection),DenseNet 就是”全连接”——第 N 层接收第 1 到 N-1 层所有特征图的拼接。
核心创新:
- 密集块(Dense Block):块内每一层都接收前面所有层的特征图(按通道维度拼接)
- 增长率(Growth Rate):每层只输出很少的新特征图(比如 k=32),因为前面所有层的特征都还在,不需要重复学习
- 过渡层(Transition Layer):在密集块之间用 1x1 卷积压缩通道数,用池化降采样
为什么重要:DenseNet 展示了”特征复用”的极致——参数更少,梯度流动更顺畅,在小数据集上效果尤其好。但缺点是显存消耗大(需要存储所有中间特征图),训练速度慢。
7.6.7 MobileNet(2017):为移动端而生
Google 的 MobileNet 用深度可分离卷积(Depthwise Separable Convolution)替代标准卷积。
深度可分离卷积的工作原理:
- 标准卷积:一个 3x3xC_in 的卷积核,同时做空间滤波(3x3 区域)和通道混合(C_in 个通道),产生一个输出通道。要产生 C_out 个通道,需要 C_out 个这样的卷积核。计算量 =
K×K×C_in×C_out×H×W - 深度可分离卷积:拆成两步——
- 逐通道卷积(Depthwise):每个输入通道用独立的 3x3 卷积核做空间滤波。计算量 =
K×K×C_in×H×W - 逐点卷积(Pointwise):用 1x1 卷积混合通道信息。计算量 =
C_in×C_out×H×W
- 逐通道卷积(Depthwise):每个输入通道用独立的 3x3 卷积核做空间滤波。计算量 =
- 总计算量 ÷ 标准卷积计算量 ≈
1/C_out + 1/K²≈ 1/8 到 1/9(对于 C_out 较大、K=3 的情况)
效果:MobileNet 的模型大小只有几 MB,在手机上可以实时运行,精度损失很小。MobileNetV2 引入了倒残差块(Inverted Residual)和线性瓶颈(Linear Bottleneck),MobileNetV3 用 NAS 搜索最优结构。
为什么重要:MobileNet 证明了”不是所有 AI 都需要在云端跑”——手机上的实时人脸识别、AR 滤镜、物体检测,都依赖 MobileNet 级别的效率。
7.6.8 EfficientNet(2019):用 NAS 搜索最优架构
Google 的 EfficientNet 用神经架构搜索(NAS)找到了一个”基础网络”(EfficientNet-B0),然后用复合缩放(Compound Scaling)同时放大深度、宽度和分辨率。
核心创新:
- 复合缩放:不是只加深(更多层)、只加宽(更多通道)、或只加大分辨率,而是三者按一个最优比例同时放大。深度翻倍 → 宽度和分辨率也按公式增加。
- NAS 搜索:用强化学习自动搜索最优的 B0 基础架构,而不是人工设计。
- 效率碾压:EfficientNet-B7 在 ImageNet 上达到 84.3% top-1 准确率,参数比当时最好的模型少 8.4 倍,速度快 6.1 倍。
为什么重要:EfficientNet 证明了”架构设计可以被自动化”——NAS 搜索出的架构超越了人类专家手工设计的架构。它也给出了一个实用的缩放法则:深度、宽度、分辨率三者要平衡,单方面增加任何一项都会遇到收益递减。
7.6.9 ConvNeXt(2022):CNN 的现代化
FAIR(Meta AI)的研究者问了一个问题:“如果把 ViT 的设计理念全部用在 CNN 上,CNN 会怎样?“答案就是 ConvNeXt。
“现代化”改造:
- 大卷积核:从 3x3 改成 7x7(像 ViT 的全局自注意力)
- LayerNorm 替代 BatchNorm(像 Transformer)
- GELU 替代 ReLU(像 Transformer)
- 更少的激活函数和归一化层(像 Transformer 的简洁设计)
- 用步长卷积替代池化做降采样
- 倒残差瓶颈设计(类似 MobileNetV2 的 Inverted Residual)
效果:纯 CNN 架构,没有任何自注意力机制,性能追平了同期的 Swin Transformer,同时在推理速度上有优势(卷积的局部计算比自注意力的全局计算快)。
为什么重要:ConvNeXt 说明了一个重要结论——CNN 和 ViT 之间的差距,很大程度上不是”卷积 vs 自注意力”的本质差异,而是多年积累的工程细节差异(训练策略、数据增强、优化器选择等)。当 CNN 也采用现代训练方法后,性能差距大幅缩小。
← 上一节:7.5 经典架构 | 下一节:7.8 CNN 的训练技巧 →
关联5
知识图谱局部图谱 · 点节点跳转