ResNet 通过残差连接解决深度网络的梯度消失问题,使网络深度突破 1000 层。
定义
残差网络(Residual Network, ResNet)的核心创新是残差学习机制:
$$y = F(x, {W_i}) + x$$
跳跃连接(Skip Connection)让梯度直接流向前面的层。
发展历史
| 时间 | 里程碑 |
|---|---|
| 2012 | AlexNet 开启 CNN 时代 |
| 2014 | VGGNet 证明深度提升性能,但出现梯度问题 |
| 2015 | 何恺明团队提出 ResNet |
| 2016 | ResNet-152 错误率 3.57%,超越人类水平 |
核心原理
残差块
| |
$$y = \text{ReLU}(F(x) + x)$$
网络架构
| 版本 | 深度 | 关键改进 |
|---|---|---|
| ResNet-18 | 18 | 基础残差块 |
| ResNet-50 | 50 | 瓶颈结构(Bottleneck) |
| ResNet-152 | 152 | 常用最大版本 |
瓶颈结构:$1\times1$ 降维 → $3\times3$ 卷积 → $1\times1$ 升维
适用场景
| 任务 | 应用 |
|---|---|
| 图像分类 | ImageNet 基准测试 |
| 目标检测 | Faster R-CNN 骨干网络 |
| 语义分割 | FCN + ResNet |
| 姿态估计 | HRNet 基础架构 |
实际应用:医学影像、自动驾驶、工业质检。
训练技巧
- 学习率:初始 0.1,每 30 epoch 除以 10
- Batch Size:256(多 GPU 并行)
- 优化器:SGD with momentum=0.9
- 权重衰减:1e-4
- 数据增强:随机裁剪、水平翻转、颜色抖动
PyTorch 实现
| |
变体架构
| 变体 | 改进 |
|---|---|
| ResNeXt | 分组卷积增强特征多样性 |
| Wide ResNet | 增加通道数替代加深 |
| Res2Net | 多尺度特征融合 |
| ConvNeXt | 受 Swin Transformer 启发 |
张芷铭的个人博客
Comments