02 经典神经网络(Classic Networks)
02 经典神经网络(Classic Networks)
02 经典神经网络(Classic Networks)
课程总结
本节课程介绍了深度学习发展史中三个具有里程碑意义的经典卷积神经网络(CNN)结构:LeNet-5、AlexNet 和 VGG-16。这些模型为现代计算机视觉奠定了基础,理解它们的结构、设计思想和历史背景对于深入掌握深度学习至关重要。
🎯 课程目标
- 理解 LeNet-5、AlexNet、VGG-16 的整体架构与关键组件。
- 掌握每种网络的输入输出尺寸变化规律。
- 学习经典网络的设计理念及其对后续研究的影响。
- 认识到激活函数、池化方式、GPU并行训练等关键技术的发展演变。
🔹 1. LeNet-5(1998)
✅ 背景
由 Yann LeCun 提出,用于手写数字识别(MNIST 数据集),是最早的成功 CNN 模型之一。
📐 输入输出
- 输入:$32 \times 32 \times 1$(灰度图像)
- 输出:10 类分类结果(0–9)
🧱 网络结构
| 层 | 操作 | 参数/尺寸 |
|---|---|---|
| C1 | 卷积层 | $6$ 个 $5\times5$ 过滤器,步幅 $s=1$,padding=0输出:$28\times28\times6$ |
| S2 | 平均池化 | $2\times2$ 池化窗口,步幅 $s=2$输出:$14\times14\times6$ |
| C3 | 卷积层 | $16$ 个 $5\times5$ 过滤器,步幅 $s=1$,padding=0输出:$10\times10\times16$ |
| S4 | 平均池化 | $2\times2$,步幅 $s=2$输出:$5\times5\times16$ |
| F5 | 全连接层 | $400$ 个节点 → $120$ 个神经元 |
| F6 | 全连接层 | $120$ → $84$ 个神经元 |
| Output | 分类器 | $84$ → $10$(使用 softmax 或旧式分类器) |
⚠️ 注意:LeNet-5 使用的是 sigmoid 和 tanh 激活函数,而非 ReLU。
🔁 尺寸变化规律
图像高度/宽度逐层减小:
\[32 \xrightarrow{\text{conv}} 28 \xrightarrow{\text{pool}} 14 \xrightarrow{\text{conv}} 10 \xrightarrow{\text{pool}} 5\]通道数逐步增加:$1 \to 6 \to 16$
💡 设计特点
- 卷积 + 池化交替:典型的“卷积-池化”模块组合。
- 参数少:约 6 万个参数,适合当时硬件条件。
- 无 padding:采用 valid 卷积,导致尺寸持续缩小。
- 非线性处理:池化后接 sigmoid 函数(现已不常用)。
❌ 已淘汰的技术
- 使用 sigmoid/tanh 激活函数(梯度消失问题严重)
- 池化后接非线性函数(如 sigmoid)
- 复杂的跨层连接设计(部分已被简化)
🔹 2. AlexNet(2012)
✅ 背景
由 Alex Krizhevsky、Ilya Sutskever 和 Geoffrey Hinton 提出,在 ImageNet 上取得突破性成果,标志着深度学习在计算机视觉中的崛起。
📐 输入输出
- 输入:$227\times227\times3$(RGB 图像)
- 输出:1000 类分类(ImageNet)
注:原文用 $224\times224$,但 $227$ 更利于整除计算。
🧱 网络结构
| 层 | 操作 | 参数/尺寸 |
|---|---|---|
| Conv1 | $96$ 个 $11\times11$ 过滤器,步幅 $s=4$,padding=0输出:$55\times55\times96$ | |
| Pool1 | $3\times3$ 最大池化,步幅 $s=2$输出:$27\times27\times96$ | |
| Conv2 | $256$ 个 $5\times5$ 过滤器,步幅 $s=1$,padding=2(same)输出:$27\times27\times256$ | |
| Pool2 | $3\times3$ 最大池化,步幅 $s=2$输出:$13\times13\times256$ | |
| Conv3 | $384$ 个 $3\times3$ 过滤器,步幅 $s=1$,padding=1(same)输出:$13\times13\times384$ | |
| Conv4 | $384$ 个 $3\times3$ 过滤器,步幅 $s=1$,padding=1输出:$13\times13\times384$ | |
| Conv5 | $256$ 个 $3\times3$ 过滤器,步幅 $s=1$,padding=1输出:$13\times13\times256$ | |
| Pool5 | $3\times3$ 最大池化,步幅 $s=2$输出:$6\times6\times256$ | |
| FC6 | 全连接层 | $6\times6\times256 = 9216$ → $4096$ |
| FC7 | 全连接层 | $4096$ → $4096$ |
| FC8 | 全连接层 | $4096$ → $1000$ |
| Softmax | 输出层 | 分类概率分布 |
🔁 尺寸变化
\[227 \xrightarrow{\text{conv}} 55 \xrightarrow{\text{pool}} 27 \xrightarrow{\text{conv}} 27 \xrightarrow{\text{pool}} 13 \xrightarrow{\text{conv}} 13 \xrightarrow{\text{pool}} 6\]🎯 关键创新点
1. ReLU 激活函数
- 替代 sigmoid/tanh,缓解梯度消失问题。
定义:
\[\text{ReLU}(x) = \max(0, x)\]
2. Dropout
- 在全连接层中使用 dropout(通常为 0.5),防止过拟合。
3. 局部响应归一化(LRN)
- 动机:增强特征之间的竞争性,抑制高激活值。
公式(局部响应归一化):
\[b_{x,y}^i = \frac{a_{x,y}^i}{\left(k + \alpha \sum_{j=\max(0,i-n/2)}^{\min(N-1,i+n/2)} (a_{x,y}^j)^2\right)^\beta}\]- $a$: 卷积输出
- $b$: 归一化后输出
- $k, \alpha, \beta$: 超参数(原论文中 $k=2, \alpha=1e^{-4}, \beta=0.75$)
- ❌ 当前已基本不用,效果有限。
4. 多 GPU 并行训练
- 将网络分为两部分,分别在两个 GPU 上运行。
- 通过通信机制同步中间层输出(如第 5 层)。
- 解决了当时显存不足的问题。
📈 参数量
- 总参数数:约 6000 万(60M)
- 比 LeNet-5 增加了约 1000 倍
✅ 重要影响
- 首次证明深度 CNN 可以在大规模图像分类任务上超越传统方法。
- 推动 GPU 在深度学习中的广泛应用。
- 引发了深度学习在 CV 领域的革命。
🔹 3. VGG-16(2014)
✅ 背景
由 Karen Simonyan 和 Andrew Zisserman 提出,强调 简洁性和一致性,结构规整易实现。
📐 输入输出
- 输入:$224\times224\times3$
- 输出:1000 类分类
🧱 网络结构(简要)
| 模块 | 操作 |
|---|---|
| Block 1 | 2× $3\times3$ 卷积(64 通道),+ MaxPool |
| Block 2 | 2× $3\times3$ 卷积(128 通道),+ MaxPool |
| Block 3 | 3× $3\times3$ 卷积(256 通道),+ MaxPool |
| Block 4 | 3× $3\times3$ 卷积(512 通道),+ MaxPool |
| Block 5 | 3× $3\times3$ 卷积(512 通道),+ MaxPool |
| FC | 3 个全连接层:$4096 \to 4096 \to 1000$ |
| Output | Softmax |
注:VGG-16 名字来源于 16 个卷积层 + 全连接层 的总数。
🔁 尺寸变化规律
| 步骤 | 尺寸 | 操作 |
|---|---|---|
| 输入 | $224\times224\times3$ | — |
| Conv1 | $224\times224\times64$ | same 卷积 |
| Conv2 | $224\times224\times64$ | same 卷积 |
| Pool1 | $112\times112\times64$ | $2\times2$ 池化,步幅 2 |
| Conv3 | $112\times112\times128$ | same 卷积 |
| Conv4 | $112\times112\times128$ | same 卷积 |
| Pool2 | $56\times56\times128$ | 池化 |
| … | … | … |
| Final Feature Map | $7\times7\times512$ | 最终池化 |
| FC | $4096$ → $4096$ → $1000$ | 展平后全连接 |
✅ 设计原则
1. 小卷积核
- 使用 $3\times3$ 卷积核,替代更大的核。
优势:
- 参数少
- 可堆叠更深
- 更强的非线性表达能力
2. Same Padding
- 所有卷积层均使用
same模式,保持空间维度不变。 公式:
\[\text{Padding} = \left\lfloor \frac{k - 1}{2} \right\rfloor\]其中 $k=3$,故 padding=1。
3. 统一结构
- 每组卷积层后跟一个最大池化层。
- 通道数按 2 倍递增:64 → 128 → 256 → 512
- 每次池化将空间尺寸缩小一半。
4. 参数量大但结构简单
- 总参数数:约 1.38 亿(138M)
- 优点:易于理解和复现
- 缺点:计算成本高,训练慢
⚠️ 缺点
- 模型庞大,内存占用高
- 不如后来的 ResNet 等高效
- 后续被更轻量化的模型取代(如 MobileNet)
🔍 对比总结表
| 特性 | LeNet-5 | AlexNet | VGG-16 |
|---|---|---|---|
| 发布年份 | 1998 | 2012 | 2014 |
| 输入大小 | $32\times32\times1$ | $227\times227\times3$ | $224\times224\times3$ |
| 任务 | 手写数字识别 | ImageNet 分类 | ImageNet 分类 |
| 参数量 | ~60K | ~60M | ~138M |
| 激活函数 | sigmoid/tanh | ReLU | ReLU |
| 池化类型 | 平均池化 | 最大池化 | 最大池化 |
| 是否使用 LRN | 否 | 是(已弃用) | 否 |
| 是否使用 Dropout | 否 | 是 | 是 |
| 是否使用 GPU 并行 | 否 | 是 | 否 |
| 卷积核大小 | $5\times5$ | $11\times11$, $5\times5$, $3\times3$ | $3\times3$ |
| 结构复杂度 | 简单 | 中等 | 规整但深 |
| 主要贡献 | 首个成功 CNN | 推动深度学习革命 | 简洁一致的设计范式 |
📚 学习建议
✅ 推荐阅读顺序
- AlexNet 论文:最容易理解,包含大量实用技巧。
- VGG 论文:结构清晰,适合初学者模仿。
- LeNet-5 论文:较难读,需了解早期技术背景。
🛠️ 实践建议
- 使用 PyTorch 或 TensorFlow 复现这三个模型。
- 观察不同模型在 CIFAR-10 或 MNIST 上的表现差异。
- 比较参数量、推理速度、准确率。
🔚 总结
这三款经典网络代表了深度学习发展的三个阶段:
- LeNet-5:开创者,验证了 CNN 的可行性。
- AlexNet:引爆者,展示了深度网络的强大能力。
- VGG-16:规范化者,提出了简洁而有效的设计原则。
尽管它们已被更先进的模型(如 ResNet、EfficientNet)超越,但其设计理念仍然深刻影响着今天的神经网络架构。
💡 下节课预告:我们将进入 Residual Networks(ResNets) ,学习如何解决深度网络中的梯度消失问题,以及残差连接的核心思想。
本文由作者按照 CC BY 4.0 进行授权