第 8 课
← 返回系列列表

Course 4:经典 CNN 架构

Deep Learning Specialization — 深度学习专项课程

LeNet、AlexNet、VGG、ResNet、Inception 等里程碑式架构。

Course 4:经典 CNN 架构

课程简介

LeNet、AlexNet、VGG、ResNet、Inception 等里程碑式架构。

🎬 本课程视频:Deep Learning Specialization — 深度学习专项课程


一、经典CNN架构

1.1 LeNet-5 (1998)

Yann LeCun 提出的首个成功应用的卷积神经网络。

结构:Conv(5×5,6)→AvgPool(2×2)→Conv(5×5,16)→AvgPool(2×2)→FC(120)→FC(84)→Softmax(10)

特点:
- 使用Sigmoid/Tanh激活函数
- 平均池化
- 约6万个参数
- MNIST手写数字识别上达到99.2%准确率

1.2 AlexNet (2012)

Alex Krizhevsky 在2012年ImageNet竞赛中以巨大优势夺冠,标志着深度学习时代的到来。

结构:11×11 Conv(96)→5×5 Conv(256)→3×3 Conv(384)→3×3 Conv(384)→3×3 Conv(256)→FC(4096)→FC(4096)→Softmax(1000)

特点:
- 使用ReLU激活函数,比Tanh快数倍
- 使用Dropout防止过拟合(keep_prob=0.5)
- 局部响应归一化(LRN)
- 数据增强(平移、翻转、颜色变化)
- 使用两块GTX 580 GPU训练,花费5-6天
- 约6000万个参数

1.3 VGGNet (2014)

Karen Simonyan 和 Andrew Zisserman 提出,证明增加深度可以提升性能。

特点:
- 全部使用3×3小滤波器(Conv层堆叠)
- 2个3×3卷积堆叠等效于1个5×5卷积(感受野相同,参数更少)
- 3个3×3卷积堆叠等效于1个7×7卷积
- 网络更深(VGG16有16层,VGG19有19层)
- 约1.38亿个参数(计算量很大)

$$ \text{感受野: } 2\times(3-1)+1 = 5 $$
$$ \text{参数: } 2\times(3\times3\times C) = 18C \ll 5\times5\times C = 25C $$

VGG的发现:3×3小滤波器的多层堆叠比直接使用大滤波器更高效,参数更少且非线性更强。

1.4 ResNet (2015)

Kaiming He 提出的残差网络(Residual Network)解决了深层网络的退化问题。

退化问题:网络加深到一定程度后,训练误差反而上升——这不是过拟合,因为训练误差也高。说明深层网络更难优化。

残差块

$$z^{[l+1]} = a^{[l]}$$
$$a^{[l+1]} = g(z^{[l+1]} + \text{Skip}(a^{[l]}))$$

标准块:$a^{[l+2]} = g(W^{[l+2]}g(W^{[l+1]}a^{[l]} + b^{[l+1]}) + b^{[l+2]})$

残差块:$a^{[l+2]} = g(W^{[l+2]}g(W^{[l+1]}a^{[l]} + b^{[l+1]}) + b^{[l+2]} + a^{[l]})$

$+a^{[l]}$ 就是跳连接(Skip Connection),也叫捷径(Shortcut)。

为什么ResNet有效:跳连接让梯度可以直接传播到浅层,即使中间层的权重很小,梯度也不会消失。残差块学习的是残差$H(x)-x$而不是直接映射$H(x)$,残差通常更容易学习。

$$ \text{如果 } H(x) \approx x \text{,残差 } H(x)-x \approx 0 \text{ 比直接学习 } H(x) \approx x \text{ 更容易}$$

ResNet-152有152层,在ImageNet上达到3.57% top-5错误率,超越人类水平。

1.5 Inception (GoogLeNet, 2014)

Christian Szegedy 提出的Inception网络使用"网中网"思想。

Inception模块:在同一层并行使用1×1、3×3、5×5卷积和3×3最大池化,然后将所有输出在通道维度拼接。

1×1卷积(瓶颈层):先使用1×1卷积减少通道数,再使用3×3或5×5卷积,大幅降低计算量:

$$ \text{直接使用5×5: } 5\times5\times192\times32 \approx 154K \text{ 参数} $$
$$ \text{先1×1降维: } 1\times1\times192\times16 + 5\times5\times16\times32 \approx 16K \text{ 参数} $$

Inception网络约有500万个参数,是AlexNet的1/12。

1.6 架构演进总结

网络 年份 关键创新 ImageNet top-5错误率
LeNet-5 1998 CNN基础架构 -
AlexNet 2012 ReLU、Dropout、GPU训练 16.4%
VGG-16 2014 小滤波器堆叠 7.3%
GoogLeNet 2014 Inception模块 6.7%
ResNet-152 2015 残差学习、BatchNorm 3.57%

1.7 实用技巧

  1. 使用预训练模型(ImageNet权重)进行迁移学习
  2. 微调时使用小学习率(原学习率的1/10)
  3. 梯度裁剪防止梯度爆炸
  4. 使用Batch Normalization加速训练
  5. 合理的数据增强策略

延伸阅读

← Course 4:卷积神经网络基础 Course 4:目标检测与分割 →