记录一些深度学习基础知识

batch normalization与layer normalization

索引:NLP中 batch normalization与 layer normalization

BN、LN可以看作横向和纵向的区别。
经过归一化再输入**函数,得到的值大部分会落入非线性函数的线性区,导数远离导数饱和区,避免了梯度消失,这样来加速训练收敛过程。
BatchNorm这类归一化技术,目的就是让每一层的分布稳定下来,让后面的层可以在前面层的基础上安心学习知识。
BatchNorm就是通过对batch size这个维度归一化来让分布稳定下来。LayerNorm则是通过对Hidden size这个维度归一。

https://i.loli.net/2020/07/11/MJnY847uNvWSaTk.png#shadow
在这里插入图片描述
在nlp中,LN则是针对一句话进行缩放的,且LN一般用在第三维度,如[batchsize, seq_len, dims]中的dims,一般为词向量的维度,或者是RNN的输出维度等等,这一维度各个特征的量纲应该相同。因此也不会遇到上面因为特征的量纲不同而导致的缩放问题。