ICML2020-PowNorm:重新思考transformer中的batch-normalization

这篇论文深入研究了Transformer中批处理归一化(BN)的问题,并提出了Power Normalization(PN)作为改进方法。作者指出,NLP数据的批处理统计信息波动大,导致BN性能下降。PN通过放松BN的零均值归一化和使用运行的二次平均值,解决了这一问题。实验显示,PN在机器翻译和语言建模任务上显著优于LN和BN,特别是在IWSLT14 / WMT14和PTB / WikiText-103数据集上取得了更好的BLEU分数和PPL。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在这里插入图片描述

这篇论文由UCB的研究者提出,旨在研究transformer中新的正则化方法。

自然语言处理NLP中使用的神经网络模型的标准归一化方法是层归一化LN。与计算机视觉中广泛采用的批处理规范化BN不同。 LN在NLP中的首选原因主要是由于观察到使用BN会导致NLP任务的性能显着下降。本文对NLP transformer模型进行了系统研究,以了解为什么BN与LN相比性能较差。在整个训练过程中,整个批次维度上的NLP数据统计量都显示出较大的波动。如果实施BN,则会导致不稳定。为了解决这个问题,本文提出功率归一化(PN),它可以通过**(i)放松BN中的零均值归一化,(ii)结合运行的二次平均值而不是按批统计来稳定波动**,以及**(iii)使用近似反向传播,将运行统计信息并入正向传递**。从理论上讲,与BN相比,PN导致损失的Lipschitz常数更小。此外证明了近似的反向传播方案会导致有界梯度。在一系列NLP任务上对transformer的PN进行了测试,结果表明它显着优于LN和BN。特别是,在IWSLT14 / WMT14和5.6 / 3.0上,PN的性能优于LN 0.4 / 0.6 BLEU PTB / WikiText-103上的PPL。

注:所有关于引理的证明请见论文

1.引言

正则化已成为神经网络体系结构中用于各种机器学习任务的关键组件之一,尤其是在计算机视觉(CV)和自然语言处理(NLP)中。但是,目前在CV和NLP中使用的正则化形式不同。批归一化(BN)在CV中被广泛采用,但是当在NLP中使用时,它会导致明显的性能下降。取而代之的是,层归一化(LN)是NLP中使用的标准归一化方案。最近所有NLP体系结构(包括Transformer)已将LN代替BN作为其默认标准化方案。尽管如此,尚未阐明BN导致NLP失败的原因,也没有提出替代LN的更好方法。

这项工作对NLP的BN相关挑战进行了系统的研究,并在此基础上提出了功率归一化(PN),这是一种明显优于LN的新颖归一化方法。贡献如下:

1.NLP数据与CV数据的批处理统计数据存在明显差异。特别是**NLP数据的批处理统计信息在整个训练过程中差异很大。这种变化也存在于相应的梯度中。**相比之下,CV数据的方差小几个数量级。有关CV和NLP中BN的比较,请参见图2和3。

2.为了减少批次统计数据的变化,通过放宽零均值归一化来修改典型的BN,并用二次均值代替方差。将此方案称为PN-V。从理论上证明PN-V保留了BN中的一阶平滑性。参见引理2。

3.对二次均值使用运行统计数据可显着改善性能,与BN相比,IWSLT14 / WMT14上的1.5EU / BLEU和PTB / WikiText-103上的7.7 / 3.4 PPL。参见表1和2。将此方案称为PN。使用运行统计信息需要更正BN中的典型反向传播方案。作为替代方案提出一种近似反向传播来捕获运行统计数据。从理论上证明,这种近似的反向传播会导致有界梯度,这是收敛的必要条件;见定理4。

4.测试显示PN与LN相比,在机器翻译和语言建模任务方面也提高了性能。特别是,PN优于LN 0.4 / 0.6 BLEU 在IWSLT14 / WMT14上使用,在PTB / WikiText-103上使用5.6 / 3.0 PPL。与LN相比,PN的改进不会改变任何超参数。
5.通过计算所得嵌入层的奇异值分解来分析PN和LN的行为,并表明PN产生条件更好的嵌入层;参见图6。此外显示PN对小批量统计数据具有鲁棒性,并且与LN相比,它仍然可以实现更高的性能。参见图5。

[

​ 图 1

2.Batch Normalization

符号 将归一化层的输入表示为X∈RB×dX \in R^{B\times d}XRB×d,其中d是嵌入/特征尺寸,B是批处理尺寸。 将L表示为神经网络的损失函数。 矩阵的第i行(列)(例如X)用Xi,:(X:,i)X_{i ,:}(X:,i)Xi,:Xi表示。 将矩阵的第i行写为小写形式,即xi=Xi,;x_i =X_{i,;}xi=Xi,;。 对于向量y,yi表示y中的第i个元素。

在没有其他说明的情况下:(i)对于两个向量x∈Rdx \in R^{d}xRdy∈Rdy \in R^dyRd,将xy表示为按元素乘积,将x+y表示为按元素求和,而将<x,y><x,y><xy>表示为内积; (ii)对于向量y∈Rdy \in R^{d}yRd和矩阵x∈RB×dx \in R^{B\times d}xRB×d,我们将y⊙Xy\odot XyX表示为[y1X:,1,...,ydA:,d][y_1X_{:,1},...,y_dA_{:,d}][y1X1...ydAd]并将y+Xy+Xy+X表示为[y+X1,:;...;yXB,:][y+X_{1,:}; ...; yX_{B,:}][y+X1:<

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值