深度学习中的归一化方法BN、LN、IN、GN

不同归一化方法计算统计量的方式和施加归一化的范围不一样。

BN受到批尺寸的影响,而LN、IN和GN避开了批尺寸这个维度。

这张图与我们平常看到的feature maps有些不同,立方体的3个维度为别为batch/ channel/ HW,而我们常见的feature maps中,3个维度分别为channel/ H/ W,没有batch。分析上图可知:BN计算均值和标准差时,固定channel(在一个channel内),对HW和batch作平均;LN计算均值和标准差时,固定batch(在一个batch内),对HW和channel作平均;IN计算均值和标准差时,同时固定channel和batch(在一个batch内中的一个channel内),对HW作平均;GN计算均值和标准差时,固定batch且对channel作分组(在一个batch内对channel作分组),在分组内对HW作平均。更精确的公式描述请大家自行看原论文Group Normalization吧。

GN是介乎于instance normal 和 layer normal 之间的一种归一化方式。也就是说当我们把所有的channel都放到同一个group中的时候就变成了layer normal, 如果我们把每个channel都归为一个不同的group,则变成了instance normal.

GN同样可以针对于mini batch size较小的情况。因为它有不受batch size的约束。

可以看到与BN不同,LN/IN和GN都没有对batch作平均,所以当batch变化时,网络的错误率不会有明显变化。但论文的实验显示:LN和IN 在时间序列模型(RNN/LSTM)和生成模型(GAN)上有很好的效果,而GN在视觉模型上表现更好。

https://www.cnblogs.com/jins-note/p/11342565.html

https://zhuanlan.zhihu.com/p/289384231?utm_source=wechat_session

快去成为你想要的样子!
原文地址:https://www.cnblogs.com/jiangkejie/p/14291407.html