深度学习笔记【实践篇】三、CV奠基者-ResNet
2020/3/10大约 2 分钟
延续前两篇的实践记录,这次聚焦在CV领域的奠基架构——ResNet,并总结训练中常出现的几种归一化手段。
1. 深度越深越差?
理论上,网络越深,表达能力越强;但在真实训练中,堆叠更多卷积层反而出现训练误差上升。根因包括:
- 梯度在反向中不断衰减(vanishing),前面层几乎得不到更新。
- 参数层层放大后,前向输出易出现数值爆炸,导致优化器在巨大的loss面里迷路。
这就是ResNet要解决的“退化问题”:它不追求花哨结构,而是让深层网络至少能学到一个恒等映射。一句话:加一层不会更差。
2. ResNet的核心思想
2.1 残差连接
ResNet block会让网络显式学习残差函数 ,从而将目标表示成:
这样即便 训练得不好,模型仍可退化为恒等映射 ,避免层数增加带来的性能下降。
3. 四种归一化手段
| 方法 | 归一化范围 | 是否依赖 batch | 适用场景 |
|---|---|---|---|
| BatchNorm | 对每个通道在 batch 和空间维上统计 | 需要 batch 信息 | CNN 图像分类、较大 batch 训练 |
| LayerNorm | 对单个样本的所有通道/特征整体归一化 | 不依赖 batch | 序列模型(RNN/Transformer) |
| InstanceNorm | 对单样本、逐通道地做归一化 | 不依赖 batch | 图像生成、风格迁移 |
| GroupNorm | 对单样本,将通道分组后归一化 | 不依赖 batch | 小 batch 训练、检测/分割 |
- BatchNorm:利用 batch 统计来稳定和加速训练,典型于卷积网络;但当 batch size 太小时估计不准。
- LayerNorm:忽略 batch 维、直接归一化层内部所有维度,非常适合 NLP/Transformer。
- InstanceNorm:逐样本、逐通道处理,等价于去掉每张图的“实例风格”,常见于风格迁移。
- GroupNorm:把通道分组后归一化,折中 BN 与 LN,尤其在小 batch 的检测、分割任务中更稳。