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的)。
时间: 2024-10-25 22:33:17