ImageNet Classification with Deep Convolutional Neural Networks

2012 单 GPU 深度学习 被引用 766 次 ★ 获奖
下载 PDF

ImageNet Classification with Deep Convolutional Neural Networks - 中文验证版

英文原始依据卡片:alexnet_2012.md

状态:已翻译。

元数据

  • Slug: alexnet_2012
  • 年份: 2012
  • 会议: NeurIPS
  • 作者: Alex Krizhevsky, Ilya Sutskever, Geoffrey E. Hinton
  • 阅读状态: read complete
  • 计算范式: 单 GPU 深度学习
  • 主要来源: PDF抽取文本

计算设置

论文明确列出设备:两块 NVIDIA GTX 580 GPU,每块 3GB 内存。训练耗时五到六天。运行在 120 万张 ImageNet 训练图像上使用 SGD,遍历数据集约 90 个周期,batch size 128,momentum 0.9,weight decay 0.0005,初始学习率 0.01,三次手动 10 倍学习率下调。

这些硬件并非偶然。作者说明,网络大小主要受 GPU 内存和可容忍的训练时间限制。单块 GTX 580 只有 3GB 内存,因此模型被切分到两块卡上。该切分利用了 GPU 间直接内存访问,无需经过主机内存,且通信仅限制在选定层,使传输在计算中保持可接受的比例。

软件栈同样是设置的一部分:优化的 GPU 2D 卷积,加上 CPU 端 Python 数据增强与上一批数据的 GPU 训练重叠进行。

瓶颈

ImageNet 规模数据集使手工特征管线和较小模型不再充分。限制资源转为密集卷积吞吐和 GPU 内存。CNN 在 2012 年之前已有吸引力,但论文指出,将其大规模应用于高分辨率图像此前过于昂贵,难以实施。ImageNet 提供了足够标签来训练高容量模型而不会立即过拟合,而 GPU 提供了足够的卷积吞吐使实验可行。

内存塑造了架构。最终网络约有 6000 万参数、五个卷积层和三个全连接层。由于激活和权重必须放入每 GPU 3GB 内存中,模型是手工切分的。通信并非免费,因此部分层跨 GPU 连接,其他层保持本地连接。

过拟合是另一个计算瓶颈。训练许多独立模型过于昂贵,因为一个 CNN 就已需要数天时间,因此论文使用更廉价的 regularization 和增强方法,而非仅依赖集成。

方法适配

AlexNet 以如下具体方式适配 2012 年 GPU 设置:

  • 卷积在 GPU 上实现,并占据主要有用计算。
  • 网络被划分到两块 GPU 上,部分层按 channel 切分,并限制通信以降低传输开销。
  • ReLU 非线性相比饱和激活减少训练时间。
  • Local response normalization 和 overlapping pooling 被纳入 GPU 友好的卷积管线中。
  • CPU 在 GPU 训练上一批数据时生成数据增强,使增强工作基本上隐藏在 GPU 工作之后。
  • Dropout 用于全连接层,以控制在大数据集上训练高容量模型时的过拟合。

因此,该方法是 ImageNet 规模数据与消费级游戏 GPU 之间的适配。ReLU 是一种计算适配,因为论文报告其在 CIFAR-10 上达到相同训练误差目标的速度是等价 tanh 单元的六倍,减少了昂贵的训练迭代次数。

双 GPU 切分既是内存适配也是带宽适配。每块 GPU 放置一半的 kernel 或神经元,但各列并非完全独立。部分层从两块 GPU 读取,其他层仅从本地特征图读取。这提供了足够的交叉通信以保证准确率,同时将 GPU 间通信控制在有限范围内。

增强和推理设计也反映了计算预算。随机裁剪和翻转将有效训练集扩展 2048 倍,而无需存储变换后的图像。测试时,网络对十张 224 x 224 裁剪图像取平均。Dropout 以共享权重的形式近似大型集成,代价是训练迭代次数约两倍,而非多次数日运行。

证据

  • 论文报告 ILSVRC-2010 top-1/top-5 测试错误率为 37.5% 和 17.0%。
  • 在 ILSVRC-2012 中,提交模型达到 15.3% top-5 错误率,显著领先第二名的 26.2%。
  • 双 GPU 网络比单 GPU 版本训练略快,并取得更低验证错误率。
  • 训练使用 SGD,batch size 128,momentum 0.9,weight decay 0.0005,并手动下调学习率。
  • 与较小的单 GPU 卷积网络相比,双 GPU 切分将 top-1 和 top-5 错误率分别降低 1.7 和 1.2 个百分点。
  • Response normalization 和 overlapping pooling 各自降低报告的 top-1/top-5 错误率。
  • CPU 端增强被描述为实际计算上免费,因为它与上一批数据的 GPU 训练重叠进行。
  • 不使用 dropout 时,网络严重过拟合;dropout 大约使收敛所需迭代次数翻倍,但避免了训练多个完整模型。
  • ILSVRC-2010 对比:此前竞赛最佳为 47.1% top-1 和 28.2% top-5,而稍后的 Fisher-vector 系统达到 45.7% 和 25.7%;该 CNN 达到 37.5% 和 17.0%。

历史影响

AlexNet 标志着主流 AI 历史中 GPU 深度学习范式的实际开端。它不仅仅展示 CNN 有效;它展示出大型监督数据集加上可编程 GPU 吞吐能够大幅击败 CPU 时代视觉系统。

计算教训是:架构、正则化和数据处理均围绕两块 GTX 580 卡的内存与带宽约束而塑造。

论文也明确指出了前进方向:作者表示,等待更快的 GPU 和更大的数据集即可改善结果。ImageNet 创造了数据压力;AlexNet 表明消费级 GPU 卷积是匹配的计算基底。

局限

  • 结果依赖标签监督和重度 ImageNet 规模标注。
  • 多 GPU 缩放是手工结构化的,且按后来标准规模很小。
  • 论文的设备适配非常适合密集卷积,但尚不适用于序列建模或大规模语言预训练。
  • 双 GPU 切分是一种定制架构决策,而非通用分布式训练系统。

链接