机器学习 / A LEAF IN THE GARDEN
CNN总结
机器学习 · 动手深度学习。来自 Daily Learning 的学习笔记。
学到的网络
沐神讲了 CNN 从 1998 年诞生直到 2015 年的时代巅峰
LeNet(1998)
第一个卷积神经网络
- 关键创新
- 确立了 卷积+池化+全连接 的 CNN 基本结构
- 特点:
- 结构简单,参数量小
- 意义
- 确立 CNN 的概念和范式
AlexNet(2012)
力大砖飞
- 关键创新
- 更深、更大的网络
- ReLU 和 Dropout 等细节
- 使用数据增强和多 GPU 训练
- 特点:
- 结构复杂混乱,参数量大
- 大型卷积核、重叠池化
- 意义
- ImageNet 上的成绩引发深度学习热潮
VGG(2014)
使用块结构的深度网络
- 关键创新
- 使用小卷积核堆叠代替大卷积核
- VGG 块使网络结构规整
- 进一步增加网络深度
- 特点:
- 结构规整
- 小卷积核堆叠
- 参数量巨大
- 意义
- 证明“深度网络”的有效性
- 简单设计结构成为风尚
NiN(2014)
NiN 巧设连环计,MLP 误上断头台
- 关键创新
- 使用 1x1 卷积进行通道交互
- 全局平均池化替代全连接层
- 特点:
- 完全无 MLP,参数量很小
- NiN 块结构规整
- 意义
- 1x1 卷积将被广泛使用
- 提出全局平均池化
GoogLeNet(2014)
我全要!多尺度卷积的并行连接
- 关键创新
- Inception 块使用多种卷积核并行提取特征
- 使用 1x1 卷积降维,减少计算和参数
- 特点:
- 结构非常复杂,但参数量小
- 辅助分类器
- 意义
- 开创多分支卷积设计先河
- 证明高效的网络设计可以更深、更复杂,但保持参数量不大
ResNet(2015)
残差连接!千层网络!!
数据统计
我使用 RTX 5090,在 Fashion-MNIST 数据集上训练了这些网络,得到如下统计数据。超参数等等没有严格控制,数据量也不够,不能精准对比,但能大致看出这些网络的特性。
| 模型 | 参数量 | 计算量 | 内存占用 | 训练速度 | 测试精度 |
|---|---|---|---|---|---|
| LeNet | 61K | 0.41M | 0.3 MB | 106508.1 /s | 0.839 |
| LeNet-BN | 62K | 0.42M | 0.36MB | 79099.6 /s | 0.879 |
| AlexNet | 58.3M | 1.06G | 238.7 MB | 7083.2 /s | 0.916 |
| VGG | 128.8M | 7.55G | 574.9 MB | 6058.3 /s | 0.920 |
| NiN | 1.99M | 763.82M | 20.4 MB | 7365.1 /s | 0.851 |
| GoogLeNet | 5.98M | 276.66M | 28.69 MB | 2977.4 /s | 0.882 |
| ResNet | 11.18M | 1.74G | 83.25 MB | 3048.0 /s | 0.925 |
- 计算量: 前向传播和反向传播的总计算量,单位 FLOPs
- 内存占用: 模型参数和中间特征图占用的总内存
- 训练速度: 每秒训练的样本数
CNN 的“未来”
2015 年以后的现代 CNN
- DenseNet(2016)
- MobileNet(2017)
- ShuffleNet(2017)
- SENet(2017)
- ResNXet(2017)
- EfficientNet(2019)
- ConvNeXt(2022)
这些不在沐神的 d2l 课程里,将来我还要自己去学习。