bn和ln的本質區別:
batch normalization是縱向歸一化,在batch的方向上對同一層每一個神經元進行歸一化,即同一層每個神經元具有不同的均值和方差。
layer normalization 是橫向歸一化,即同一層的所有神經元具有相同的均值和方差。
bn和ln的使用區別:
1.如果batch size過小,那么得到的統計量難以反應全局信息,因此不適合使用bn;而ln不關心batch size。
2.由於rnn編碼是考慮句子長度信息的,而同一個batch里的句子長度可能不一致,因此在rnn使用batch normalization是有問題的,而ln是在橫向歸一化,因此可以應用在rnn網絡中。