bn和ln的本质区别:
batch normalization是纵向归一化,在batch的方向上对同一层每一个神经元进行归一化,即同一层每个神经元具有不同的均值和方差。
layer normalization 是横向归一化,即同一层的所有神经元具有相同的均值和方差。
bn和ln的使用区别:
1.如果batch size过小,那么得到的统计量难以反应全局信息,因此不适合使用bn;而ln不关心batch size。
2.由于rnn编码是考虑句子长度信息的,而同一个batch里的句子长度可能不一致,因此在rnn使用batch normalization是有问题的,而ln是在横向归一化,因此可以应用在rnn网络中。