基本信息
作者 | JL Ba | doi | |
---|---|---|---|
发表时间 | 2016 | 期刊 | NIPS |
网址 | https://arxiv.org/abs/1607.06450v1 |
研究背景
1. What’s known 既往研究已证实
batch Normalization对属于同一个Batch中的数据长度要求是相同的,不适合处理序列型的数据。因此它在NLP领域的RNN上效果并不显著,但在CV领域的CNN上效果显著。
2. What’s new 创新点
层内正则化方法,不依赖batch的大小,Layer Normalization 的作用是把神经网络中隐藏层归一为标准正态分布。
3. What’s are the implications 意义
LN是一种有效的正则化方法,也解决了BN在处理RNN和流式数据时遇到的问题,推动了深度学习的进一步发展。
研究方法
1. 嵌入维度
每一行数据有三个特征,假设这三个特征是【身高、体重、年龄】。那么BN是针对每一列(特征)进行缩放,例如算出【身高】的均值与方差,再对身高这一列的10个数据进行缩放。体重和年龄同理。这是一种“列缩放”。
针对每个位置进行缩放,这不符合NLP的规律。
当Batch size很小的时候,BN的效果就非常不理想了。在很多情况下,Batch size大不了,因为GPU的显存不够。
2. Layer Normalization
在每一个样本上计算均值和方差;用每一列的每一个元素减去这列的均值,再除以这列的标准差,从而得到归一化后的数值。
对数据进行归一化处理(均值为0,标准差为1),把数据分布强制统一在一个数据分布下,而且这一步不是一开始做的,而是在每次进行下一层之前都需要做的。也就是说,在网络的每一层输入之前增加一个当前数据归一化处理,然后再输入到下一层网络中去训练。
把神经网络中隐藏层归一为标准正态分布,也就是 独立同分布,以起到加快训练速度,加速收敛的作用。
联合训练图片和句子embedding上的表现,模型使用的是RNN。可以看出,LN能加速收敛,比BN的效果好。
参考文章:论文笔记 | Layer Normalization - 知乎
(zhihu.com)
结果与讨论
- (LN)的主要作用是解决内部协变量偏移,使得数据收敛加快,并且能够提高模型泛化能力,提高训练速度和稳定性。
重要图
文献中重要的图记录下来