批标准化(batch normalization,BN)与层标准化(layer normalization,LN)应该都是为了解决网络训练过程中的协变量漂移问题。
BN与LN的归一化方法都是先减均值,再除以标准差。只不过针对的对象不同。
BN:取不同样本的同一个通道的特征做归一化,逐特征维度归一化;
LN:取的是同一个样本的不同通道做归一化,逐个样本归一化。
BN在大batchsize的情况下效果好,缺点是:1)batchsize小的情况下效果不好;2)不适用于序列模型,如RNN,LSTM等,尤其当序列样本的长度不同时。
所以,当batchsize较小,RNN,LSTM情况下,使用LN好些。其他情况,应该是使用BN好一些。
参考:https://zhuanlan.zhihu.com/p/54530247
https://blog.csdn.net/sinat_34072381/article/details/106173365
https://blog.csdn.net/leviopku/article/details/83182194