一、经典CNN架构:从LeNet到ResNet的设计思想与演进

大家好,我是你们的老朋友。今天咱们聊聊CNN的“祖宗们”——LeNet、AlexNet、VGGNet、ResNet。说实话,这些架构虽然“老”,但它们的核心思想至今还在用。我当年刚入行时,就是靠啃这些经典才真正理解了深度学习。

核心观点:CNN的演进史,就是一部“如何更高效地提取特征”的历史。从5层到152层,不是简单堆叠,而是设计思想的革命。

1.1 LeNet-5:开山鼻祖(1998年)

LeNet是Yann LeCun的手写数字识别网络。说实话,现在看它很简陋,但该有的组件全有了:卷积、池化、全连接、非线性激活。

结构速览:

  • 输入:32×32灰度图
  • C1:6个5×5卷积核 → S2:2×2平均池化
  • C3:16个5×5卷积核 → S4:2×2平均池化
  • C5:120个5×5卷积核(实际是全连接)
  • F6:84个神经元 → 输出:10类(softmax)

我个人习惯把LeNet看作“特征提取器+分类器”的雏形。卷积层负责提取局部特征,池化层做降维,全连接层做分类。这个范式,至今没变。

避坑指南:我曾经在复现LeNet时踩过一个坑——输入尺寸必须是32×32,不是28×28。因为LeNet的卷积设计刚好把32×32缩放到1×1。如果你用28×28,最后一层卷积的输出尺寸会不对。

1.2 AlexNet:深度学习的“引爆点”(2012年)

AlexNet在ImageNet上碾压传统方法,直接引爆了深度学习热潮。它比LeNet深不了多少(8层 vs 5层),但做了几个关键改进。

核心创新:

  • ReLU激活函数:解决了Sigmoid的梯度消失问题。训练速度快了好几倍。
  • Dropout:随机丢弃神经元,防止过拟合。我刚开始用的时候总觉得不靠谱,后来发现真香。
  • 数据增强:随机裁剪、翻转、颜色变换。说白了就是“无中生有”地扩充数据。
  • GPU并行训练:两块GTX 580,把网络拆成两半分别训练。

你想想看,AlexNet的参数量高达6000万,比LeNet多了两个数量级。为什么没严重过拟合?就是因为Dropout和数据增强这两招。

注意:AlexNet用了11×11的大卷积核和4×4的大步长。这在今天看来有点“粗暴”,但在当时算力有限的情况下,大卷积核能快速扩大感受野。不过,大卷积核也意味着参数量爆炸——这也是后来VGG改用小卷积核的原因。

1.3 VGGNet:小卷积核的胜利(2014年)

VGG的核心思想很简单:用多个3×3小卷积核堆叠,替代大卷积核。比如,两个3×3卷积堆叠,感受野等于一个5×5;三个堆叠等于一个7×7。

为什么小卷积核更好?

  • 参数量更少:3个3×3卷积(27个参数) vs 1个7×7卷积(49个参数)
  • 更多非线性:每层卷积后都有ReLU,堆叠3层就有3次非线性变换,表达能力更强
  • 更深的网络:VGG16有16层,VGG19有19层。深度增加带来了更好的特征抽象能力

我记得在项目中用VGG做迁移学习时,发现它的特征提取能力非常稳定。虽然现在有更轻量的网络,但VGG的“规整结构”让它特别适合做特征提取的baseline。

VGG的“规整”体现在:所有卷积层都用3×3、padding=1、stride=1;所有池化层都用2×2、stride=2。这种一致性让网络设计变得“无脑”,但也限制了灵活性。

1.4 ResNet:残差学习的革命(2015年)

ResNet解决了深度学习史上最大的难题——网络退化。按理说,网络越深应该越好,但实际发现56层网络的错误率比20层还高。这不是过拟合,而是优化困难。

残差块的核心思想:

传统映射:H(x) = F(x)
残差映射:H(x) = F(x) + x

说白了,就是让网络学习“残差”而不是直接学习“映射”。如果恒等映射是最优的,网络只需要把残差部分学成0就行,比从头学一个恒等映射容易得多。

为什么残差学习有效?

  • 梯度直通:反向传播时,梯度可以通过“捷径连接”直接传到浅层,避免了梯度消失
  • 网络退化缓解:即使深层网络学不到新特征,至少能保留浅层特征
  • 易于优化:残差块的梯度范数更稳定,训练更顺畅

个人经验:我曾经在训练一个50层的网络时,不加残差连接,loss死活降不下去。加上残差连接后,训练曲线瞬间“丝滑”了。嗯,这就是残差学习的魔力。

1.5 架构演进的核心逻辑

从LeNet到ResNet,我总结出三条演进主线:

维度 LeNet AlexNet VGGNet ResNet
深度 5层 8层 16-19层 50-152层
卷积核 5×5 11×11, 5×5, 3×3 3×3 3×3, 1×1
激活函数 Sigmoid ReLU ReLU ReLU
核心创新 CNN范式 ReLU+Dropout 小卷积核堆叠 残差学习
参数量 6万 6000万 1.38亿 2500万(ResNet50)

你发现没有?深度越来越深,但参数量反而可以更少。ResNet50比VGG16深3倍,参数量却只有后者的1/5。这就是设计思想的进步——用更高效的结构提取特征,而不是简单堆叠参数。

一句话总结:LeNet定义了CNN范式,AlexNet证明了深度学习的潜力,VGGNet规范了卷积设计,ResNet突破了深度瓶颈。这四个架构,是每个深度学习工程师的必修课。

1.6 本章知识体系图

下面我用一张SVG图来展示这四大架构的演进关系。你可以看到,每个架构都在前人的基础上解决了特定问题。

经典CNN架构演进图 1998 2012 2014 2015 LeNet-5 5层 · 6万参数 卷积+池化+全连接 手写数字识别 AlexNet 8层 · 6000万参数 ReLU · Dropout ImageNet分类 VGGNet 16-19层 · 1.38亿参数 3×3小卷积核堆叠 规整结构设计 ResNet 50-152层 · 2500万参数 残差学习 · 捷径连接 解决网络退化 深度增加 · ReLU引入 小卷积核 · 更规整 残差学习 · 深度突破 演进核心逻辑 更深的网络 → 更强的特征抽象能力 更高效的结构 → 更少的参数、更好的效果 更稳定的训练 → 残差连接、Batch Normalization

这张图清晰地展示了四个架构的演进脉络。从LeNet到ResNet,每个架构都在前人的基础上解决了特定问题。我个人建议初学者按照这个顺序去理解,你会发现深度学习的发展其实很有逻辑。

学习建议:不要只看,一定要动手复现。我当年花了一周时间手写LeNet的前向传播,虽然代码写得稀烂,但对卷积、池化的理解深入骨髓。嗯,有些坑只有自己踩过才记得住。

好了,经典CNN架构就聊到这里。这四个架构是深度学习大厦的基石,理解它们的设计思想,对你后续学习MobileNet、EfficientNet、Vision Transformer等新架构会很有帮助。

可可精品资料库