Deep Residual Learning for Image Recognition

2015 多 GPU 稠密训练 被引用 4.7k 次
下载 PDF

Deep Residual Learning for Image Recognition - 中文验证版

英文原文卡片:resnet_2015.md

状态:已翻译。

元数据

  • Slug: resnet_2015
  • 年份: 2015
  • 会议: CVPR
  • 作者: Kaiming He, Xiangyu Zhang, Shaoqing Ren, Jian Sun
  • 阅读状态: read complete
  • 计算范式: 多 GPU 密集训练
  • 主要来源: PDF抽取文本

计算设置

论文提供了部分硬件披露。对于 ImageNet 分类,给出了训练配方但未命名设备:224x224 随机裁剪,每次卷积后 batch normalization,SGD 使用 minibatch size 256,学习率 0.1 在平台期除以 10,weight decay 0.0001,momentum 0.9,训练最多 600,000 次迭代。抽取文本未命名 ImageNet GPU,因此按项目规则该部分推断为 2015 年代密集 CNN 多 GPU 训练。

论文在其他地方确实声明了设备。CIFAR-10 实验在两块 GPU 上使用 minibatch size 128。在目标检测附录中,COCO 模型使用 8-GPU 实现:RPN 步骤 minibatch size 为 8 张图,每 GPU 一张,Fast R-CNN 步骤 minibatch size 为 16 张图,两个步骤均训练 240k 次迭代,学习率 0.001,随后 80k 次迭代为 0.0001。这些细节将 ResNet 置于从单工作站 CNN 到多 GPU 密集视觉训练的过渡期,其中激活内存、batch 统计量和卷积吞吐量决定了哪些架构可行。

瓶颈

瓶颈是优化深度,而不仅仅是表示容量。引言框定了退化问题:随深度增加,准确率饱和然后迅速退化,且退化在训练误差中可见。更深的 plain network 理应能通过使新增层成为恒等映射来复制更浅的解,但当时的优化器无法可靠地找到这样的解。Batch normalization 和初始化已解决了数十层内最明显的梯度消失/爆炸失败,因此剩下的问题是如何使数百个密集卷积层可用 SGD 训练。

还有一个硬件层面的瓶颈版本。简单堆叠 3x3 卷积会增加串行深度、激活存储和墙钟时间。对于 ImageNet 尺度的输入,VGG-19 被列为 19.6B FLOPs,而 34 层 plain/ResNet 家族为 3.6B FLOPs,152 层 ResNet 为 11.3B FLOPs。问题不仅仅是"我们能否表示一个更深的函数?",而是"我们能否在使优化和内存不崩溃的前提下,将可用的多 GPU 卷积计算花在深度上?"

方法适配

残差学习通过让 SGD 更容易表示出简单解,将极深 CNN 适配到该密集训练范式。模块学习 F(x) + x 而非一个无参照的变换。当维度匹配时,恒等捷径(identity shortcut)不增加参数且几乎不增加计算;当维度变化时,论文比较了零填充和投影选项,并在可能时选择更低复杂度的选项。论文强调恒等捷径对不增加瓶颈架构的复杂度尤为重要。

瓶颈模块是使深度可缩放的计算适配。对于 ResNet-50/101/152,每个残差函数使用 1x1、3x3 和 1x1 卷积,在昂贵的空间卷积周围缩减然后恢复通道维度。论文称该设计的动机是作者担心训练时间过长,难以承受。因此 152 层模型比 VGG nets 深 8 倍,但复杂度仍低于 VGG-19。每次卷积后的 batch normalization 稳定训练,而检测附录在 Faster R-CNN 精调期间固定 BN 统计量主要是为了降低内存消耗。多尺度测试和边界框精炼对检测增加了推理阶段计算,但核心分类模型保持单模型评估可行。

证据

ImageNet 证据隔离了优化。图 4 比较 18 层和 34 层 plain network 与残差版本;34 层 plain net 具有更高的训练误差,而 34 层 ResNet 的训练误差更低,验证误差也优于 18 层 ResNet。表 3 报告 10-crop ImageNet 验证 top-5 误差从 ResNet-34 的 7.40 改善到 ResNet-50 的 6.71、ResNet-101 的 6.05 和 ResNet-152 的 5.71。表 4 报告单模型 ResNet-152 在 19.38% top-1 和 4.49% top-5 验证误差。摘要报告集成达到 3.57% top-5 测试误差,赢得 ILSVRC 2015 分类。

CIFAR-10 提供了深度压力测试。论文训练了 100 层和 1000 层模型,一个 1202 层网络达到低于 0.1% 的训练误差,显示没有优化困难,但其 7.93% 测试误差比 110 层模型差。这表明残差路径比它解决极端深度的所有泛化成本更直接地解决了可训练性瓶颈。在检测中,在 Faster R-CNN 中用 ResNet-101 替换 VGG-16 带来了 COCO mAP@[.5,.95] 上 6.0 个点的提升,28% 的相对改善,仅归因于更好的学习表示。

历史影响

ResNet 使极深密集 CNN 变得实用,并将多 GPU 视觉范式从"能否训练这么深?"转向"应如何缩放深度、宽度和计算?"。其计算结构保守但强大:花费更多卷积深度,同时添加几乎免费的恒等数据路径和控制 FLOP 的瓶颈。残差路径随后成为超越视觉的默认抽象,包括后来的 Transformer 模块,其中跳跃连接帮助极深且利于加速器的层级堆叠保持可训练性。

局限

ResNet 并未消除成本;它使更大的深度预算变得可用。极深网络仍增加激活内存和训练时间,论文自身的 1202 层 CIFAR 结果显示优化成功可能超越泛化。ImageNet 硬件未被命名,因此无法仅从论文重建确切的设备吞吐量。Batch normalization 也是配方的核心部分,给小 batch 和内存受限的精调带来了复杂性。在检测中,作者冻结 BN 统计量以降低内存消耗,表明方法仍紧贴 GPU 内存极限。

链接