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 提供了更多非线性,特征表达能力更强。另外用小卷积核堆叠可以让网络更深,而深度是提升特征层级化能力的关键。
最后记几个点
- LeNet 奠定了"Conv → Pool → FC"的标准范式,AvgPool 先于 MaxPool
- AlexNet 突破是 ReLU + GPU + Dropout 三合一工程组合的结果
- VGG 证明了小卷积核堆叠比大卷积核更高效,3×3 卷积成为标准
- ResNet 的 Skip Connection 是 CNN 最重要的工程创新,让深层训练成为可能
- EfficientNet 用复合缩放法则同时优化深度/宽度/分辨率,效率远超经验缩放
- Skip Connection 的思想后来被所有现代架构(Transformer/Diffusion)借鉴