深度神经网络的训练是具有高度的计算复杂性的。减少训练的时间成本的一种方法是对神经元的输入进行规范化处理进而加快网络的收敛速度。层规范化是在训练时和测试时对数据同时进行处理,通过对输入同一层的数据进行汇总,计算平均值和方差,来对每一层的输入数据做规范化处理。因此,计算出同一层中所有隐藏单元的层规范化的统计信息的公式如下所示:
其中$h_t$表示隐层第t层的输出,$a_t^i$表示隐层第t层的第i个输入,b是偏置,g是在非线性激活函数之前对归一化激活进行缩放的增益参数。
层规范化是基于批规范化进行优化得到的。相比较而言,批规范化是对一个神经元输入的数据以mini-batch为单位来进行汇总,计算平均值和方法,再用这个数据对每个训练样例的输入进行规整。层规范化在面对RNN等问题的时候效果更加优越,也不会受到mini-batch选值的影响。对比图如下所示:[描述来源:Ba J L, Kiros J R, Hinton G E. Layer Normalization[J]. 2016.]
[图片来源:知乎https://www.zhihu.com/question/48820040]
发展历史
描述
为了加快神经网模型的收敛速度,2015年,Ioffe S和Szegedy C提出了批规范化方法对神经网每一层的输入进行处理,获得了较为优越的效果,但这这种方法的性能受到mini-batch选值的影响,而且无法应用到RNN等神经网中。2016年,JimmyLeiBa,Hinton等人提出了层规范化的方法,不仅可以应用于RNN中,而且由于不再受到mini-batch选值的影响,算法性能得到了提升。2017年,提出了基于语言识别的动态批层范化算法。
主要事件
年份 | 事件 | 相关论文/Reference |
2015 | 提出了批规范化算法,来对网络每一层的输入进行规范化处理 | Ioffe S, Szegedy C. Batch Normalization: Accelerating Deep Network Training by Reducing Internal Covariate Shift[J]. 2015:448-456. |
2016 | Hinton针对批规范化存在的问题,提出了层规范化处理的方法, | Ba J L, Kiros J R, Hinton G E. Layer Normalization[J]. 2016. |
2017 | 提出了基于语言识别的动态批层范化算法 | Kim T, Song I, Bengio Y. Dynamic Layer Normalization for Adaptive Neural Acoustic Modeling in Speech Recognition[C]// INTERSPEECH. 2017:2411-2415. |
发展分析
瓶颈
相比较于批规范化,层规范化在速度上不占有优势。特别是在对CNN进行处理时,有实验证明,层规范化在面对ConvNet时,层规范化在效果和速度上都比批规范化效果差。
未来发展方向
为了提高深度学习算法在训练模型时的效率,基于对输入数据规范化的思路,构建效果更优良的规范化方法,是层规范化算法的未来发展。
Contributor: Yilin Pan