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

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


归一化的分类


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很像。
怎么做

在现有深度学习框架下可以轻松实现组归一化。

效果

发布了888 篇原创文章 · 获赞 93 · 访问量 18万+

猜你喜欢

转载自blog.csdn.net/weixin_36670529/article/details/104006515