2026年4月19日

CNN 经典架构(LeNet / VGG / ResNet / EfficientNet)

CNN 架构的演进史是一部"如何让网络更深更宽"的工程史,同时也是一部"如何解决梯度消失"的工程史:

知识库深度学习deep-learningcnncomputer-visionarchitecture

CNN 经典架构(LeNet / VGG / ResNet / EfficientNet)

先把结论放前面

CNN 架构的演进史是一部"如何让网络更深更宽"的工程史,同时也是一部"如何解决梯度消失"的工程史:

  • LeNet:CNN 的起点(1998),5 层,MNIST
  • AlexNet:ImageNet 突破,8 层,ReLU + GPU 训练
  • VGG:用小卷积核堆叠更深网络,3×3 卷积统一天下
  • ResNet:Skip Connection 解决梯度消失,152 层成为里程碑
  • EfficientNet:复合缩放法则,同时平衡深度/宽度/分辨率

理解这些架构不是为了背结构,是为了理解每一代的工程问题是什么

LeNet(1998)

LeNet 是 Yann LeCun 在手写数字识别(MNIST)上的经典工作,奠定了 CNN 的基本结构:

Input(32×32) → Conv(6, 5×5) → AvgPool(2×2) → Conv(16, 5×5) → AvgPool → Conv(120, 5×5) → FC(84) → FC(10)

关键设计:

  • 卷积层 + 池化层交替:提取特征 → 降维
  • AvgPool(平均池化)而非 MaxPool
  • **FC(全连接层)**做分类

LeNet 奠定了"卷积层抓空间特征 → 池化降维 → FC 分类"的标准范式。

AlexNet(2012)

AlexNet 在 ImageNet 分类任务上以压倒性优势(top-5 error 15.3%)击败第二名(26.2%),引发深度学习复兴。

关键创新:

ReLU 激活函数

ReLU(x) = max(0, x)

比 Sigmoid / Tanh 收敛快 6 倍,同时解决了 Sigmoid 两端的梯度消失问题(x → ±∞ 时梯度趋于 0)。

Dropout 正则化

训练时随机让一半神经元失活,防止过拟合。测试时使用全部神经元并乘以 0.5。

GPU 训练

用两块 GTX 580(每块 3GB 显存)并行训练,第一次证明 GPU 可以训练大模型。

VGG(2014)

VGG 的核心贡献是证明了用小卷积核堆叠深层网络,比大卷积核更有效

3×3 卷积堆叠的数学等价

一个 5×5 卷积 = 两层 3×3 卷积(感受野 5×5)
一个 7×7 卷积 = 三层 3×3 卷积(感受野 7×7)

3×3 堆叠的优势

  • 参数量更少:3×3×C² vs 7×7×C²(减少约 55%)
  • 非线性更多:三层 ReLU vs 一层,特征表达能力更强
  • 深层网络更稳定:梯度流更好

VGG-16 / VGG-19

VGG-16: 13 Conv(3×3) + 3 FC
VGG-19: 16 Conv(3×3) + 3 FC

VGG 的问题是 3 个 FC 层(参数量巨大),后来被全卷积网络(FCN)逐步替代。

ResNet(2015)

核心问题:深层网络的退化

理论上,更深的网络应该不比浅层网络差(至少可以恒等映射浅层),但实践中更深的网络训练误差反而更高。这不是过拟合,而是优化困难

Skip Connection(残差连接)

ResNet 的解决方案是引入 Skip Connection(跳跃连接):

Output = F(x) + x

F(x) 是残差,x 是输入。如果最优映射是恒等映射(最优 F(x) = 0),网络只需要把 F(x) 推到 0,而不需要学习复杂的恒等映射。

梯度流:Skip Connection 让梯度直接传回前层,极大缓解了梯度消失问题。

ResNet Block

BasicBlock:   x → Conv → BN → ReLU → Conv → BN → (+) → ReLU → Output
Bottleneck:  x → Conv(1×1, 64) → Conv(3×3, 64) → Conv(1×1, 256) → (+) → ReLU
  • BasicBlock(ResNet-18/34):两层结构
  • Bottleneck(ResNet-50/101/152):1×1 降维 → 3×3 卷积 → 1×1 升维,参数量更少

ResNet 的影响

ResNet 的 Skip Connection 是深度学习最重要的工程发现之一,后续几乎所有现代架构(Transformer、Diffusion、MoE)都借鉴了这个设计。

EfficientNet(2019)

传统缩放的问题

传统模型缩放是经验性的:

  • 深度缩放(d):更深网络 → 更好特征,但梯度消失
  • 宽度缩放(w):更宽网络 → 更细粒度特征,但参数量爆炸
  • 分辨率缩放(r):更高分辨率 → 更精细特征,但计算量爆炸

三个维度相互制约,单独缩放一个维度会导致次优结果。

复合缩放法则(Compound Scaling)

EfficientNet 用神经网络架构搜索(NAS)找出了最优缩放比例:

depth: d = α^φ
width: w = β^φ
resolution: r = γ^φ
s.t. α × β² × γ² ≈ 2(计算量约翻倍)
α = 1.2, β = 1.1, γ = 1.15

结果:EfficientNet-B0 比同期 ResNet-50 参数量少 5×,FLOPs 少 5×,但精度更高。

Mobile 友好

EfficientNet 还衍生出 Mobile 专用版本(EfficientNet-B0-B8 + MobileV3),是移动端部署的常用基座模型。

架构对比

架构 年份 深度 Top-1 Acc(ImageNet) 关键创新
LeNet-5 1998 5 —(MNIST) CNN 基本结构
AlexNet 2012 8 62.5% ReLU + Dropout + GPU
VGG-16 2014 16 74.4% 3×3 堆叠,全卷积
ResNet-152 2015 152 78.3% Skip Connection
EfficientNet-B7 2019 84.4% 复合缩放 + NAS

如果放到面试里怎么讲

"ResNet 的 Skip Connection 为什么有效?"

深层网络的退化不是过拟合,而是优化困难——更深的网络反而训练误差更高。Skip Connection 让 F(x) = Output - x 要拟合的是残差,当最优映射是恒等映射时,网络只需要把 F(x) 推到 0,这比学习恒等映射容易得多。另外,Skip Connection 让梯度直接传回前层,有效缓解了深层网络的梯度消失问题。

"3×3 卷积堆叠比大卷积核好在哪里?"

参数量更少(三层 3×3 vs 一层 7×7,减少约 55%),同时三层 ReLU 提供了更多非线性,特征表达能力更强。另外用小卷积核堆叠可以让网络更深,而深度是提升特征层级化能力的关键。

最后记几个点

  1. LeNet 奠定了"Conv → Pool → FC"的标准范式,AvgPool 先于 MaxPool
  2. AlexNet 突破是 ReLU + GPU + Dropout 三合一工程组合的结果
  3. VGG 证明了小卷积核堆叠比大卷积核更高效,3×3 卷积成为标准
  4. ResNet 的 Skip Connection 是 CNN 最重要的工程创新,让深层训练成为可能
  5. EfficientNet 用复合缩放法则同时优化深度/宽度/分辨率,效率远超经验缩放
  6. Skip Connection 的思想后来被所有现代架构(Transformer/Diffusion)借鉴