[论文笔记]Root Mean Square Layer Normalization

2024-04-18 00:20

本文主要是介绍[论文笔记]Root Mean Square Layer Normalization,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

引言

今天带来论文Root Mean Square Layer Normalization的笔记,论文题目是均方根层归一化。

本篇工作提出了RMSNorm,认为可以省略重新居中步骤。

简介

层归一化对Transformer等模型非常重要,它可以帮助稳定训练并提升模型收敛性,因为它能够处理输入和权重矩阵的重新居中(re-centering)和重新缩放(re-scaling)。然而,LayerNorm引入的计算开销使这些改进变得昂贵,并且严重减慢了底层网络的速度。

image-20240417151859763

对于少量归一化层的小型和浅层神经模型来说,这个问题是微不足道的。但当底层网络变得更大更深时,这个问题就变得严重了。

因此,从更快、更稳定的训练(以训练步骤的数量为衡量)中获得的效率提升被每个训练步骤增加的计算成本所抵消,这降低了净效率,如图1所示。

在本篇工作中,作者提出了均方根层归一化(MSNorm),它仅使用均方根统计数据对一层中神经元的总输入进行正则化。与LayerNorm相比,RMSNorm减少了计算量,提高了效率。尽管公式更简单,但RMS归一化器有助于稳定层激活的幅度,确保对权重和数据集的重新缩放具有不变性。

背景知识

本节简要回顾了基于标准前馈神经网络的LayerNorm。给定一个输入向量 x ∈ R m \pmb x \in \R^m xxxRm,一个前馈网络通过线性变换将其投影到一个输出向量 y ∈ R n \pmb y ∈ \R^n yyyRn​,然后通过非线性激活进行如下处理:
a i = ∑ j = 1 m w i j x j , y i = f ( a i + b i ) (1) a_i = \sum_{j=1}^m w_{ij}x_j, \quad y_i = f(a_i +b_i) \tag 1 ai=j=1mwijxj,yi=f(ai+bi)(1)
其中 w i w_i wi是第 i 个输出神经元的权重向量, b i b_i bi是通常初始化为0的偏置标量, f ( ⋅ ) f(\cdot) f()是逐元素的非线性函数。$\pmb a ∈ \R^n $​表示神经元的加权和输入,也是归一化的目标。

这个普通的网络可能会遭受内部协变量偏移问题,即随着前面的层被更新,某一层的输入分布也会发生变化。这可能会对参数的梯度稳定性产生负面影响,延迟模型的收敛。为了减少这种偏移,LayerNorm 对输入进行归一化,使其均值和方差保持不变,具体如下:
a ˉ i = a i − μ σ g i , y i = f ( a ˉ i + b i ) (2) \bar a_i = \frac{a_i -\mu}{ \sigma} g_i,\quad y_i = f(\bar a_i +b_i) \tag {2} aˉi=σaiμgi,yi=f(aˉi+bi)(2)

其中 a ˉ i \bar a_i aˉi是向量 a ˉ ∈ R n \bar {\pmb a} \in \R^n aaaˉRn的第 i 个值,它作为 a i a_i ai在层激活中的归一化替代值。 g ∈ R n \pmb g ∈ \R^n gggRn 是用于重新缩放标准化的加权和输入的增益参数,初始值设为1。 µ µ µ σ 2 σ^2 σ2分别是从原始加权和输入 a \pmb a aaa估计得出的均值和方差统计量:
μ = 1 n ∑ i = 1 n a i , σ = 1 n ∑ i = 1 n ( a i − μ ) 2 (3) \mu = \frac{1}{n} \sum_{i=1}^n a_i,\quad \sigma = \sqrt{\frac{1}{n} \sum_{i=1}^n (a_i -\mu)^2} \tag 3 μ=n1i=1nai,σ=n1i=1n(aiμ)2 (3)

RMSNorm

LayerNorm成功的一个著名解释是其重新居中和重新缩放不变性属性。前者使得模型对于输入和权重上的偏移噪声不敏感,而后者在输入和权重都被随机缩放时保持输出表示不变。在本文中,作者假设重新缩放不变性是LayerNorm成功的原因,而不是重新居中不变性。

作者提出了RMSNorm,它仅关注重新缩放不变性,并根据均方根统计量简单地对加权和输入进行正则化:
a ˉ i = a i RMS ( a ) g i (4) \bar a_i = \frac{a_i }{ \text{RMS}(\pmb a)} g_i \tag 4 aˉi=RMS(aaa)aigi(4)
其中 RMS ( a ) \text{RMS}(\pmb a) RMS(aaa)为:
RMS ( a ) = 1 n ∑ i = 1 n a i 2 (4.1) \text{RMS}(\pmb a) =\sqrt{\frac{1}{n} \sum_{i=1}^n a_i^2} \tag {4.1} RMS(aaa)=n1i=1nai2 (4.1)
对比公式(4)和(2)发现,确实只是去掉了均值 μ \mu μ。RMSNorm通过完全删除公式(3)中的均值统计量简化了LayerNorm。当加权和输入的均值为零时,RMSNorm与LayerNorm完全相等。虽然RMSNorm不像LayerNorm那样重新居中加权和输入,但通过实验证明,这个属性并不是LayerNorm成功的根本原因,而且RMSNorm同样或更加有效。

RMS测量输入的平方均值,在RMSNorm中,它将加权和输入强制缩放到一个 n \sqrt n n 倍的单位球中。通过这样做,输出分布不受输入和权重分布的缩放影响,有利于层激活的稳定性。虽然欧几里得范数与RMS仅差一个 n \sqrt n n 的因子,已经成功应用于一些领域,但经验证明,它在层归一化中并不奏效。

作者假设根据输入向量的大小来缩放单位球是重要的,因为它使得归一化在不同大小的向量之间更加鲁棒。

不变性分析

image-20240417154533058

不变性衡量模型在归一化后输出是否高度按照其输入和权重矩阵变化。不同的归一化方法显示出不同的不变性属性,这对模型的稳健性贡献很大。

我们考虑RMSNorm的以下一般形式:
y = f ( W x RMS ( a ) ⊙ g + b ) (5) y = f\left( \frac{W\pmb x}{\text{RMS}(\pmb a)} \odot \pmb g + \pmb b \right) \tag 5 y=f(RMS(aaa)Wxxxggg+bbb)(5)
其中 ⊙ ⊙ 表示逐元素相乘。主要结果总结在表1中。由于RMS的以下线性性质,RMSNorm对于权重矩阵和输入的重新缩放都是不变的:
RMS ( α x ) = α RMS ( x ) (6) \text{RMS}(\alpha \pmb x)= \alpha \text{RMS}(\pmb x) \tag 6 RMS(αxxx)=αRMS(xxx)(6)

其中 α \alpha α是缩放值。假设权重矩阵通过一个因子 δ \delta δ缩放,比如, W ′ = δ W W^\prime = \delta W W=δW,那么这个改变不会影响最终层输出:
y ′ = f ( W ′ x RMS ( a ′ ) ⊙ g + b ) = f ( δ W x δ RMS ( a ) ⊙ g + b ) = y (7) \pmb y^\prime =f\left( \frac{W^\prime\pmb x}{\text{RMS}(\pmb a^\prime)} \odot \pmb g + \pmb b \right) =f\left( \frac{\delta W\pmb x}{\delta \text{RMS}(\pmb a)} \odot \pmb g + \pmb b \right)=\pmb y \tag 7 yyy=f(RMS(aaa)Wxxxggg+bbb)=f(δRMS(aaa)δWxxxggg+bbb)=yyy(7)
相比之下,如果仅对个别权重向量进行缩放,这个性质就不再成立,因为不同的缩放因子会破坏RMS的线性性质。同样地,如果我们强制对输入进行一个因子为 δ δ δ的缩放,比如 x ′ = δ x \pmb x^\prime = δ\pmb x xxx=δxxx,通过与公式(7)类似的分析,RMSNorm的输出将保持不变。我们还可以轻松地将这个等式推广到基于批次的输入以及整个数据集。因此,RMSNorm对于其输入的缩放是不变的。

与LayerNorm的主要区别在于,RMSNorm没有重新居中,因此在变量偏移方面没有类似的线性性质。它不对所有重新居中操作都具有不变性。

梯度分析

上述分析仅考虑了输入缩放和权重矩阵对层输出的影响。然而,在一般情况下,通过标准的随机梯度下降方法来训练经过RMSNorm增强的神经网络,模型梯度的稳健性对于参数更新和模型收敛非常关键。

Santurkar等人认为归一化方法的成功并不是因为增加了对层输入的稳定性,而是由于优化过程的平滑性增加。

我们研究RMSNorm中模型梯度的性质。给定一个损失函数KaTeX parse error: Undefined control sequence: \cal at position 1: \̲c̲a̲l̲ ̲L,我们通过公式(4)进行反向传播,得到参数 g \pmb g ggg b \pmb b bbb的梯度如下:
∂ L ∂ b = ∂ L ∂ v , ∂ L ∂ g = ∂ L ∂ v ⊙ W x RMS ( a ) (8) \frac{\partial \mathcal L}{\partial \pmb b} = \frac{\partial \mathcal L}{\partial \pmb v}, \quad \frac{\partial \mathcal L}{\partial \pmb g} = \frac{\partial \mathcal L}{\partial \pmb v} \odot \frac{W \pmb x}{\text{RMS}(\pmb a)} \tag 8 bbbL=vvvL,gggL=vvvLRMS(aaa)Wxxx(8)
其中, v \pmb v vvv代表公式(4)中 f ( ⋅ ) f(\cdot) f()内部的整个表达式, ∂ L / ∂ v ∂\mathcal L/∂\pmb v L/vvv是从KaTeX parse error: Undefined control sequence: \cal at position 1: \̲c̲a̲l̲ ̲L v \pmb v vvv的反向传播梯度。无论对于输入 x \pmb x xxx的缩放还是对于权重矩阵 W W W(对于 ∂ L / ∂ g ∂ \mathcal L/∂\pmb g L/ggg来说,是因为公式(6)中的线性性质),梯度KaTeX parse error: Undefined control sequence: \cal at position 2: ∂\̲c̲a̲l̲ ̲L/∂\pmb bKaTeX parse error: Undefined control sequence: \cal at position 2: ∂\̲c̲a̲l̲ ̲L/∂\pmb g都是不变的。此外, g \pmb g ggg的梯度与归一化的输入之和成正比,而不是原始输入。这增强了 g \pmb g ggg的幅度稳定性。

与这些向量参数不同,权重矩阵W的梯度由于RMS中的二次计算而更加复杂。具体来说,
∂ L ∂ W = ∑ i = 1 n [ x ⊤ ⊗ ( diag ( g ⊙ ∂ L ∂ v ) × R ) ] (9) \frac{\partial \mathcal L}{\partial W} = \sum_{i=1}^n \left[\pmb x^\top \otimes \left( \text{diag}\left( \pmb g \odot \frac{\partial \mathcal L}{\partial \pmb v}\right) \times R\right) \right] \tag 9 WL=i=1n[xxx(diag(gggvvvL)×R)](9)
其中
R = 1 RMS ( a ) = ( I − ( W x ) ( W x ) ⊤ n RMS ( a ) 2 ) (9.1) R = \frac{1}{\text{RMS}(\pmb a)} = \left( \pmb I - \frac{(W \pmb x)(W \pmb x)^\top}{n \text{RMS}(\pmb a)^2} \right) \tag{9.1} R=RMS(aaa)1=(IIInRMS(aaa)2(Wxxx)(Wxxx))(9.1)

diag ( ⋅ ) \text{diag}(\cdot) diag()表示输入的对角矩阵, ⊗ \otimes 表示克罗内克内积,而 I \pmb I III​表示单位矩阵。

为了清晰起见,使用 × \times ×表示矩阵乘法。矩阵项 R R R W W W的梯度与输入 x \pmb x xxx和权重矩阵 W W W联系起来。通过彻底分析,我们可以证明该项与输入和权重矩阵的缩放呈负相关。在将输入 x ( x ′ = δ x ) \pmb x(\pmb x^\prime = δ\pmb x) xxxxxx=δxxx)或权重矩阵 W ′ = δ W W^\prime = \delta W W=δW分配一个因子 δ δ δ的尺度后,我们有以下关系:
R ′ = 1 δ RMS ( a ) ( I − ( δ W x ) ( δ W x ) ⊤ n δ 2 RMS ( a ) 2 ) = 1 δ R (10) R^\prime =\frac{1}{\delta \text{RMS}(\pmb a)} \left( \pmb I - \frac{(\delta W \pmb x)(\delta W \pmb x)^\top}{n \delta ^2\text{RMS}(\pmb a)^2} \right) = \frac{1}{\delta } R \tag{10} R=δRMS(aaa)1(IIInδ2RMS(aaa)2(δWxxx)(δWxxx))=δ1R(10)
如果我们将缩放后的 R ′ R^\prime R项放回到公式(9)中,可以轻松证明梯度 ∂ L / ∂ W ∂\mathcal L/∂W L/W对于输入缩放是不变的,但与权重矩阵的缩放呈负相关。

减少梯度 ∂ L / ∂ W ∂\mathcal L/∂W L/W​对于输入缩放的敏感性可以确保其平滑性,并提高学习的稳定性。另一方面,负相关作为一个隐式的学习率适应器,动态地控制梯度的范数,避免了范数较大的权重矩阵,提高了模型的收敛性。

结论

本文介绍了RMSNorm,保留了LayerNorm的重新缩放不变性属性,但舍弃了重新居中不变性属性。与LayerNorm相比,采用RMSNorm的模型的计算开销较小,可以作为LayerNorm的替代方案,轻松应用于不同的模型架构。

总结

⭐ 作者在层归一化的基础上移除掉均值相关项,得到了RMSNorm。然后通过实现证明其效果还不错。

这篇关于[论文笔记]Root Mean Square Layer Normalization的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/913274

相关文章

AI hospital 论文Idea

一、Benchmarking Large Language Models on Communicative Medical Coaching: A Dataset and a Novel System论文地址含代码 大多数现有模型和工具主要迎合以患者为中心的服务。这项工作深入探讨了LLMs在提高医疗专业人员的沟通能力。目标是构建一个模拟实践环境,人类医生(即医学学习者)可以在其中与患者代理进行医学

【学习笔记】 陈强-机器学习-Python-Ch15 人工神经网络(1)sklearn

系列文章目录 监督学习:参数方法 【学习笔记】 陈强-机器学习-Python-Ch4 线性回归 【学习笔记】 陈强-机器学习-Python-Ch5 逻辑回归 【课后题练习】 陈强-机器学习-Python-Ch5 逻辑回归(SAheart.csv) 【学习笔记】 陈强-机器学习-Python-Ch6 多项逻辑回归 【学习笔记 及 课后题练习】 陈强-机器学习-Python-Ch7 判别分析 【学

系统架构师考试学习笔记第三篇——架构设计高级知识(20)通信系统架构设计理论与实践

本章知识考点:         第20课时主要学习通信系统架构设计的理论和工作中的实践。根据新版考试大纲,本课时知识点会涉及案例分析题(25分),而在历年考试中,案例题对该部分内容的考查并不多,虽在综合知识选择题目中经常考查,但分值也不高。本课时内容侧重于对知识点的记忆和理解,按照以往的出题规律,通信系统架构设计基础知识点多来源于教材内的基础网络设备、网络架构和教材外最新时事热点技术。本课时知识

论文翻译:arxiv-2024 Benchmark Data Contamination of Large Language Models: A Survey

Benchmark Data Contamination of Large Language Models: A Survey https://arxiv.org/abs/2406.04244 大规模语言模型的基准数据污染:一项综述 文章目录 大规模语言模型的基准数据污染:一项综述摘要1 引言 摘要 大规模语言模型(LLMs),如GPT-4、Claude-3和Gemini的快

论文阅读笔记: Segment Anything

文章目录 Segment Anything摘要引言任务模型数据引擎数据集负责任的人工智能 Segment Anything Model图像编码器提示编码器mask解码器解决歧义损失和训练 Segment Anything 论文地址: https://arxiv.org/abs/2304.02643 代码地址:https://github.com/facebookresear

数学建模笔记—— 非线性规划

数学建模笔记—— 非线性规划 非线性规划1. 模型原理1.1 非线性规划的标准型1.2 非线性规划求解的Matlab函数 2. 典型例题3. matlab代码求解3.1 例1 一个简单示例3.2 例2 选址问题1. 第一问 线性规划2. 第二问 非线性规划 非线性规划 非线性规划是一种求解目标函数或约束条件中有一个或几个非线性函数的最优化问题的方法。运筹学的一个重要分支。2

【C++学习笔记 20】C++中的智能指针

智能指针的功能 在上一篇笔记提到了在栈和堆上创建变量的区别,使用new关键字创建变量时,需要搭配delete关键字销毁变量。而智能指针的作用就是调用new分配内存时,不必自己去调用delete,甚至不用调用new。 智能指针实际上就是对原始指针的包装。 unique_ptr 最简单的智能指针,是一种作用域指针,意思是当指针超出该作用域时,会自动调用delete。它名为unique的原因是这个

查看提交历史 —— Git 学习笔记 11

查看提交历史 查看提交历史 不带任何选项的git log-p选项--stat 选项--pretty=oneline选项--pretty=format选项git log常用选项列表参考资料 在提交了若干更新,又或者克隆了某个项目之后,你也许想回顾下提交历史。 完成这个任务最简单而又有效的 工具是 git log 命令。 接下来的例子会用一个用于演示的 simplegit

记录每次更新到仓库 —— Git 学习笔记 10

记录每次更新到仓库 文章目录 文件的状态三个区域检查当前文件状态跟踪新文件取消跟踪(un-tracking)文件重新跟踪(re-tracking)文件暂存已修改文件忽略某些文件查看已暂存和未暂存的修改提交更新跳过暂存区删除文件移动文件参考资料 咱们接着很多天以前的 取得Git仓库 这篇文章继续说。 文件的状态 不管是通过哪种方法,现在我们已经有了一个仓库,并从这个仓

忽略某些文件 —— Git 学习笔记 05

忽略某些文件 忽略某些文件 通过.gitignore文件其他规则源如何选择规则源参考资料 对于某些文件,我们不希望把它们纳入 Git 的管理,也不希望它们总出现在未跟踪文件列表。通常它们都是些自动生成的文件,比如日志文件、编译过程中创建的临时文件等。 通过.gitignore文件 假设我们要忽略 lib.a 文件,那我们可以在 lib.a 所在目录下创建一个名为 .gi