Layer Normalization

Ba, Jimmy Lei, Jamie Ryan Kiros, and Geoffrey E. Hinton. "Layer normalization." arXiv preprint arXiv:1607.06450 (2016).

Batch Normalization是对每个神经元做归一化(cnn是对每个feature map做归一化),主要是为了解决internal covariate shift的问题。

作者提出,对于RNN这种没法用mini-batch的网络,没办法用BN,所以提出了Layer Normalization。 

公式为:

两个repo:https://github.com/pbhatia243/tf-layer-norm 和 https://github.com/ryankiros/layer-norm

感觉不管BN还是LN,都是为了限制神经元的输出值,使其符合一定的分布。可以看出,为了得到均值和方差,BN采用了不同batch中不同的输入数据来计,LN采用了同一层上神经元来计算。那么,是否可以通过历史时间数据来计算呢,感兴趣的同学可以自己去实现一个TN(time normalization或者叫temporal normalization ),似乎也是支持RNN的(即独立于mini-batch的)。

原文地址:https://www.cnblogs.com/huangshiyu13/p/6653346.html