Normalization 有很多种,但是它们都有一个共同的目的,那就是把输入转化成均值为 0 方差为 1 的数据。我们在把数据送入激活函数之前进行 normalization(归一化),因为我们不希望输入数据落在激活函数的饱和区。同时,使得训练数据在训练过程中尽可能的保持和测试数据拥有相同的分布。
- 一方面,这样可以减少数据的偏差,避免在训练过程中出现梯度爆炸或是梯度消失的问题;
- 另一方面,这也是确保模型测试性能的重要假设之一。
二者提出的目的都是为了加快模型收敛,减少训练时间。
- LN:Layer Normalization,LN是“横”着来的,对一个样本,不同的神经元neuron间做归一化。
- BN:Batch Normalization,BN是“竖”着来的,各个维度做归一化,所以与batch size有关系。