Group Normalization
Group Normalization - 中文验证版
英文原文卡片:group_norm_2018.md
状态:已翻译。
元数据
- Slug:
group_norm_2018 - 年份: 2018
- 会议: ECCV
- 作者: Yuxin Wu, Kaiming He
- 阅读状态: read complete
- 计算范式: 多 GPU 密集训练
- 主要来源: PDF、抽取文本
计算设置
论文给出了 worker 规模,但未给出确切的 GPU 型号。对于 ImageNet 分类,作者对所有模型使用 8 块 GPU,并将 batch size 定义为每 worker 的图像数;BN 的均值和方差在每块 GPU 内部计算,不跨 worker 同步。ImageNet 设置在大约 1.28M 训练图像上训练 ResNet 模型 100 个 epoch,并在 50000 张验证图像上以 224x224 中心裁剪进行评估。
对于迁移任务,设置更明确地受内存限制。COCO 上的 Mask R-CNN 以每 GPU 1 张图像和 8 块 GPU 进行微调。论文还研究了在 Kinetics 上使用 ResNet-50 I3D 进行视频分类,其中 64 帧变体的内存使用约为 32 帧输入的 2 倍,因此以每 GPU 4 个片段进行评估。由于抽取文本未给出 GPU SKU,项目时代的推断是 2018 年 FAIR 多 GPU NVIDIA 训练,其中重要的事实是每 GPU batch 压力而非加速器类型。
瓶颈
计算瓶颈是归一化质量与每设备 batch size 之间的耦合。当每个 worker 有足够样本时,BN 效果良好,例如 ImageNet 实验中每 GPU 32 张图像。密集视觉系统打破了这个假设:检测和分割使用高分辨率图像和区域头;视频使用 3D 时空激活值;更大的骨干网络直接与激活内存竞争。在这些条件下,实际 batch size 降至每 GPU 1 或 2 张图像,因此 BN 统计量变得噪声很大,训练目标随每 worker batch 而变化。
论文还将同步 BN 视为一种计算结构的变通方案而非完整解决方案。跨 GPU 同步统计量将小 batch 问题转移到分布式通信和硬件需求中,要求 GPU 数量与 BN 的统计需求成比例,并限制了异步求解器。GN 的动机正是为了消除这种跨设备依赖。
方法适配
组归一化使归一化对样本局部化,并独立于 batch 轴。对于一个具有 batch、channel、height 和 width 轴的激活张量,GN 将通道划分为组,并在空间位置加每组内的通道上计算均值和方差。默认的 ImageNet 设置为 32 组。极端情况将 GN 与先前方法联系起来:一组即 LayerNorm,每组一个通道即 InstanceNorm。
这是一种设备感知的适配,因为它改变了控制归一化的资源。BN 需要足够的同 worker 样本;GN 需要样本内足够的通道和空间元素。这适配了高分辨率检测和视频工作负载,在这些场景中即使每 GPU 的图像或片段数量很少,激活张量本身也很大。它还比微调中的冻结 BN 更自然地保持训练/测试行为一致:该方法不需要来自大批量预训练的运行均值或微调时的跨设备统计量。
代价权衡主要不在于更少的 FLOPs。GN 增加了逐样本的归约和归一化,但这些归约相对于卷积骨干网络来说很小。它的计算价值在于让模型将内存用于分辨率、时序长度或骨干网络容量,而非花费在 batch 基数上。
证据
在 ImageNet ResNet-50 上、每 GPU 32 张图像时,BN 仍略微领先:BN 的验证错误率为 23.6%,GN 为 24.1%。LN 为 25.3%,IN 为 28.4%,因此 GN 是该比较中最接近的 batch 无关方法。当 batch 减小时,结果急剧翻转。在每 GPU batch size 为 32、16、8、4 和 2 时,GN 保持在约 24.0-24.2% 错误率,而 BN 从 23.6 上升到 34.7%。在每 GPU 2 张图像时,GN 为 24.1%,BN 为 34.7%,差距达 10.6 个百分点。
更深的 ImageNet 实验显示了相同的结构。ResNet-101 在每 GPU 32 张图像时 BN 错误率为 22.0%,GN 为 22.4%;在 batch size 2 时,GN 为 23.0%,而 BN 上升到 31.9%。
在 COCO Mask R-CNN 中,微调设置为 8 块 GPU、每 GPU 1 张图像。对于 ResNet-50 C4 骨干网络,GN 相对于冻结 BN 将 box AP 从 37.7 提升到 38.8,mask AP 从 32.8 提升到 33.6。使用 FPN 时,R50 冻结 BN 基线为 38.6 box AP 和 34.5 mask AP;R50 GN 长训练达到 40.8 和 36.1。R101 GN 长训练达到 42.3 和 37.2。
对于 Kinetics 视频,batch 8 下的 32 帧片段结果接近:BN 73.3/90.7 top-1/top-5,GN 73.0/90.6。batch 4 时,BN 下降到 72.1/90.0,而 GN 保持 72.8/90.6。batch 4 下的 64 帧片段,GN 达到 74.5/91.7,优于 BN 的 73.3/90.8,并显示 GN 让模型从更长的时序上下文中受益,而非将这一增益损失给更小的 batch 统计量。
历史影响
GN 使归一化更少依赖数据并行的 batch 几何结构。最好将其理解为对密集视觉中激活内存瓶颈的回应:一旦图像、掩码、区域和视频片段主导了内存,旧的 ImageNet batch 范式就不再适用。GN 帮助规范了围绕每设备内存和同步约束设计层的实践,而非假设大而均匀的 minibatch。
局限
BN 在论文的常规 ImageNet 大每 worker batch 设置中仍然略优,可能是因为随机 batch 统计量增加了正则化效果。GN 引入了组数选择,尽管论文显示在多个组划分下结果稳定。它不减少骨干网络本身的内存占用;它消除了 batch size 约束,使内存可以花在其他地方。确切的 GPU 型号未在抽取文本中报告,因此设备结论应保持在 8 GPU 训练和每 GPU 内存压力的层面。
链接
- 所属计算范式:compute spine
- 方法索引:normalization
- Ledger 更新:compute bottlenecks