深度学习中的组归一化(GroupNorm)

批归一化(BN)的缺点

BN 需要用到足够大的批大小(例如,每个工作站采用 32 的批量大小)。一个小批量会导致估算批统计不准确,减小 BN 的批大小会极大地增加模型错误率。加大批大小又会导致内存不够用。

深度学习中的组归一化(GroupNorm)_第1张图片

归一化的分类

深度学习中的组归一化(GroupNorm)_第2张图片
BN,LN,IN,GN从学术化上解释差异:

  • BatchNorm:batch方向做归一化,算N*H*W的均值
  • LayerNorm:channel方向做归一化,算C*H*W的均值
  • InstanceNorm:一个channel内做归一化,算H*W的均值
  • GroupNorm:将channel方向分group,然后每个group内做归一化,算(C//G)*H*W的均值

LN 和 IN 在视觉识别上的成功率都是很有限的,对于训练序列模型(RNN/LSTM)或生成模型(GAN)很有效。

所以,在视觉领域,BN用的比较多,GN就是为了改善BN的不足而来的。

GN 把通道分为组,并计算每一组之内的均值和方差,以进行归一化。GN 的计算与批量大小无关,其精度也在各种批量大小下保持稳定。可以看到,GN和LN很像。

怎么做

在现有深度学习框架下可以轻松实现组归一化。
深度学习中的组归一化(GroupNorm)_第3张图片

效果

杠杠滴
深度学习中的组归一化(GroupNorm)_第4张图片

参考资料

FAIR何恺明等人提出组归一化:替代批归一化,不受批量大小限制

组归一化(Group Normalization)的解释

你可能感兴趣的:(python,深度学习论文笔记和实践)