← 返回 PaperDaily
视觉与图像
何恺明参与!Group Norm让小批量训练不再翻车
Batch Norm 一遇到小批量就容易“犯怵”,这篇论文直接给出替代方案:把通道切成组,在组内做归一化,既稳又好迁移。对检测、分割、视频这类显存紧张任务尤其友好。
龙哥读论文
发布于 2026-08-24 00:20:07
阅读 4
查看原文
🐉 龙哥读论文知识星球来了! 公众号每日8篇拆解不够看?星球 无上限更AI领域论文、资讯、招聘、招博、开源代码, 一站式干货,每日2分钟刷完即赚! 👇扫码加入「龙哥读论文」知识星球,前沿干货、实用资源一站式拿捏~
龙哥导读: Batch Norm 一遇到小批量就容易“犯怵”,这篇论文直接给出替代方案:把通道切成组,在组内做归一化,既稳又好迁移。对检测、分割、视频这类显存紧张任务尤其友好。
原论文信息如下:
打破Batch Norm的小批量魔咒?Group Normalization来了
深度学习里有个老毛病:Batch Normalization,简称 BN 一旦遇到小批量,脾气就开始不稳定。图像分类还能勉强撑住,到了检测、分割、视频这些显存吃紧的任务,BN 常常像被迫穿小鞋,走两步就别扭。
这篇来自 Facebook AI Research 的论文没有搞花里胡哨的新骨干,而是直接对着“归一化”下手:既然 BN 依赖 batch 统计,那就干脆别碰 batch,改成按通道分组,在组内做归一化 。这就是 Group Normalization,简称 GN 。
龙哥先剧透一句:这篇论文最狠的地方,不是“又发明了一个归一化”,而是它把很多任务里 BN 的老问题,几乎一刀切掉了。
归一化方式大比拼:BN、LN、IN与GN的区别
先把基础概念捋清楚。所谓归一化,本质上就是让某一层的特征别“忽高忽低”,免得训练像坐过山车。做法通常是先减去均值,再除以标准差,最后再乘一个可学习的缩放参数、加一个可学习的平移参数。这样既能稳住数值分布,又不会把模型表达能力直接掐死。
BN 的英文全称是 Batch Normalization ,中文是批归一化 。它在每个通道上,把同一个 batch 里的样本和空间位置一起统计。好处是训练快、效果常常好;坏处是 batch 一小,统计就容易抽风。
LN 是 Layer Normalization ,中文可理解为层归一化 。它不看 batch,而是对单个样本的所有通道一起算统计量,所以 batch 再小也不怕。但在卷积网络里,所有通道被“一锅炖”,有时会把本来有差异的特征硬拧成一团,表达力会受影响。
IN 是 Instance Normalization ,中文是实例归一化 。它更“抠门”,对每个样本、每个通道单独在空间维度上算统计量。它在风格迁移、生成模型里很常见,但在视觉识别任务里,过于独立也会让通道之间的协作被削弱。
GN 则是 Group Normalization ,中文是组归一化 。它不再把通道看成一整坨,也不把每个通道拆得太碎,而是先把通道切成若干组,再在组内计算均值和方差。说白了就是:别一锅炖,也别一粒一粒炒,分小锅炒最稳。
GN的原理很简单:通道分组,独立归一化
GN 的核心公式并不吓人,甚至可以说“朴素得有点过分”。先看标准化这一步:
BN、LN、IN 的区别,本质上就是“统计谁”。BN 统计同通道的 batch + 空间;LN 统计单样本的所有通道 + 空间;IN 统计单样本单通道的空间;GN 则统计单样本里某一组通道的空间。GN 的集合定义写成数学语言是:
效果惊人:小批量下性能稳如狗,大批量也不差
论文最关键的不是“GN 看起来合理”,而是它真的在实验里站住了。先看 ImageNet 上常规 batch size=32 的情况,这属于 BN 的舒适区,也是最能检验 GN 是否“只是小批量特化”的地方。
更有意思的是,GN 的训练误差甚至低于 BN,说明它在优化上并不吃亏。BN 的一点点验证优势,很可能来自 batch 统计带来的随机性正则化;GN 没有这种噪声,所以泛化上略逊一筹,但差距很小,完全不是“一个天上一个地下”。
真正让 BN 破防的是小批量。论文把每个 GPU 的 batch size 从 32 一路降到 2,结果 BN 的误差像坐滑梯一样往上冲,而 GN 基本稳得一批。
为什么会这样?因为 BN 的统计量来自 batch,batch 越小,均值方差估计越不准,噪声越大。GN 不依赖 batch,所以天然绕开了这个坑。对显存紧张的任务来说,这意味着可以不必为了“喂饱 BN”而被迫牺牲输入分辨率、模型容量或者时间长度。
论文还比较了 Batch Renorm。它是给 BN 打补丁的思路,但本质上还是围着 batch 转。结果在 batch size=4 时,Batch Renorm 的误差是 26.3%,仍然明显不如 GN 的 24.2%。这说明 GN 不是“修修补补过日子”,而是换了条更稳的路。
论文还用 VGG-16 看了特征分布演化。没有归一化时,特征分布会乱飘;加了 BN 或 GN 后,分布明显更稳定。这个现象说明,归一化的作用不是“锦上添花”,而是实打实地帮网络把中间特征管住,不然训练过程就容易像没拧紧的水龙头,哗哗往外跑。
多任务验证:分类、检测、视频,GN全都能打
如果 GN 只是在 ImageNet 上好看,那还不够。论文接着把它扔到更现实的任务里:目标检测、实例分割、视频分类。因为这些任务往往更吃显存,batch 更小,也更容易暴露 BN 的软肋。
在 COCO 上做 Mask R-CNN 时,BN 通常会被“冻结”成一个线性层,这个做法论文里记作 BN* 。这里的星号不是高贵加成,而是提醒你:它已经不是正常训练时的 BN 了,而是把训练时学到的均值方差固定下来,避免小 batch 继续把它搞崩。
论文进一步在 FPN 骨干上测试。这里 GN 不仅能放进 backbone,还能放进 box head、mask head。结果显示,只给 head 上 GN 就已经有提升;把 backbone 也换成 GN 后,效果还能继续涨。换句话说,GN 的优势不是只在“预训练阶段”发光,而是在“微调阶段”也能继续发热。
更狠的是“从零训练”场景。很多检测系统默认依赖 ImageNet 预训练,但 GN 让 Mask R-CNN 在 COCO 上从头训练也能跑出很强的结果。这个点非常实用,因为现实工程里并不是每次都能优雅地先训个大分类模型再迁移。
视频分类也没逃过 GN 的覆盖范围。Kinetics 上的 3D 卷积网络同样面临 batch 小、时间维度长的问题,BN 很容易被卡住。GN 在这里依然保持了更稳的验证曲线,说明它并不是只对二维图像友好,而是对“卷积特征 + 小批量”这类结构性问题更普适。
总结与展望:GN会是下一个归一化霸主吗?
GN 的贡献,归根结底是把一个很现实的问题讲透了:当 batch 变小,BN 的估计会变得不可靠 。而视觉任务里,小 batch 并不是“偶尔出现的边角料”,而是高分辨率输入、检测、分割、视频里几乎躲不开的常态。
GN 的聪明之处在于,它没有试图把 BN 的问题硬修补到完美,而是直接绕开 batch 统计。这样做的代价是少了一点 BN 的随机正则化,但换来的是稳定、可迁移、对硬件更友好的训练方式。对于工程实践来说,这种选择非常务实。
不过 GN 也不是万能药。它的分组数需要设定,虽然默认 32 组通常挺稳,但不同网络、不同任务未必永远最优;另外,GN 失去了 BN 那种来自 batch 统计的额外噪声,某些任务上泛化未必天然占优。换句话说,GN 是一个更稳的默认选项 ,但不是“闭眼乱用也必胜”的神丹妙药。
从后来的发展看,GN 的思路也很有启发:当一个训练技巧被硬件、batch size 或任务结构卡住时,最优雅的办法往往不是继续加补丁,而是重新定义“应该统计什么”。这个思路后来在很多归一化和特征建模方法里都能看到影子。
龙迷三问
这篇论文到底解决了什么问题? 它解决的是 BN 对小批量过于敏感的问题。GN 不依赖 batch 统计,因此在检测、分割、视频这类 batch 很小的任务里更稳定。
BN* 是什么意思? BN* 指的是把 BN 冻结后再用于微调。也就是训练时不再重新计算 batch 统计,而是用预训练阶段的均值和方差固定住它,避免小 batch 把它继续搞乱。
GN 为什么常设 32 组? 因为它在论文的实验里表现很稳,属于一个比较通用的折中点。组太少会像 LN,组太多会像 IN,中间这个范围通常更平衡。
如果你还有哪些想要了解的,欢迎在评论区留言或者讨论~
龙哥点评
论文创新性分数: ★★★★☆ GN 的想法不算炫技,但切中了 BN 的结构性痛点,属于“简单但很对”的创新。
它没有发明复杂模块,而是重新定义归一化的统计范围,这种思路很干净。
实验合理度: ★★★★★ 从 ImageNet 到 COCO 再到 Kinetics,覆盖了分类、检测、分割、视频,且对比了 BN、LN、IN、Batch Renorm,实验链条完整。
尤其是小 batch 的设置非常有说服力,正好命中 GN 的主战场。
学术研究价值: ★★★★★ 它把“归一化不一定非要依赖 batch”这件事做成了可复用的方法,对后续视觉模型和小批量训练都有启发。
研究价值很扎实,不靠玄学,靠的是方法论上的重新取舍。
稳定性: ★★★★☆ 在小 batch 任务里明显更稳,但分组数仍需设定,不同结构下还要做一点调参。
总体已经很适合实战,只是还谈不上“无脑通吃”。
适应性以及泛化能力: ★★★★★ 分类、检测、分割、视频都能用,跨任务表现很强。
这类方法最难得的就是不挑场景,GN 在这点上很争气。
硬件需求及成本: ★★★★☆ 训练和推理本身并不重,甚至能缓解小 batch 带来的硬件压力。
真正的优势是让显存更紧张的任务不必为了 BN 妥协。
复现难度: ★★★★★ 公式和实现都很直接,论文也给了清晰的实验设置,代码思路容易落地。
对工程团队来说,这是很友好的那种研究。
产品化成熟度: ★★★★☆ 在小 batch、检测、分割、视频等场景已经很成熟,适合作为默认归一化候选。
但在超大 batch 或特定正则化依赖很强的场景,仍需结合任务再做选择。
可能的问题: GN 很稳,但不是自动最优;分组数需要选,且少了 BN 的随机正则化,某些任务上泛化未必总是最强。
它更像一个可靠的工程底座,而不是一招通杀的神兵。
主要参考文献
Yuxin Wu, Kaiming He. Group Normalization. arXiv:1803.08494, 2018.
Facebook AI Research. Detectron 项目代码:https://github.com/facebookresearch/Detectron/blob/master/projects/GN
项目演示图:https://github.com/facebookresearch/Detectron/raw/main/projects/GN/gn.jpg
归一化这事,BN 不是唯一答案。想看更多“能落地、能复现、能少踩坑”的 AI 论文拆解,欢迎加入龙哥读论文星球~
欢迎加入龙哥读论文粉丝群,
扫描下方二维码或者添加龙哥助手微信号加群 :kangjinlonghelper。
一定要备注:研究方向+地点+学校/公司+昵称(如 图像处理+上海+清华+龙哥) ,根据格式备注,可更快被通过且邀请进群。
『龙哥读论文』微信群目前包含:图像处理、大模型及智能体、自动驾驶及机器人、AI医疗及AI金融5个群