Batch Norm v.s. Layer Norm

· 10-23 · 337 人浏览

Why do we need normalization?

存在问题:

内部协变量偏移 (Internal Covariate Shift): 在训练中,由于前面层的参数在不断更新,导致后面层接收到的输入数据分布一直在变化,就像在瞄准一个不断移动的目标,学习过程会非常困难。

normalization可以强制让每一层处理前的数据拉回一个标准的、稳定的分布上(均值0 方差1)

  1. norm可以让数据分布更稳定,促进模型收敛
  2. 减轻梯度消失/爆炸
  3. 可以用更大的学习率

BN vs LN

BN 跨样本,常用于图像,batch大,如CNN,每个通道(如RGB)都不同,

LN 跨特征,适用于seq2seq,因其seq\_len不确定,难以使用BN,同时NLP中,token通常被embedding为高维向量(如果有768维,那就是768个特征)

Theme Jasmine by Kent Liao