【归一化】RMSNorm

RMSNorm

输入向量 x ∈ R m x \in \mathbb{R^m} xRm,输出向量 y ∈ R n y\in \mathbb{R^n} yRn

线性变换: y i = f ( a i + b i ) y_i= f(a_i+b_i) yi=f(ai+bi)

其中:

  • 非线性激活函数: a i = ∑ j = 1 m w i j x j a_i=\displaystyle \sum^m_{j=1}w_{ij}x_j ai=j=1mwijxj
### RMSNorm 归一化函数的作用 RMSNorm 是一种用于深度学习中的归一化技术,其全称为 Root Mean Square Layer Normalization。它通过计算输入张量的平方根均方值来调整激活值的尺度,从而稳定训练过程并加速收敛[^3]。 #### 数学定义 RMSNorm 的核心思想是对每一层的输出应用如下公式: \[ y = \frac{x}{\sqrt{\text{E}[x^2] + \epsilon}} \] 其中: - \(x\) 表示输入向量, - \(\text{E}[x^2]\) 表示输入向量各维度上平方值的期望(即平均值), - \(\epsilon\) 是一个小常数,用来防止除零错误, - \(y\) 是经过 RMSNorm 处理后的输出。 相比传统的 Layer Norm (LN),RMSNorm 不会减去输入的均值,因此减少了部分计算开销,同时保留了对特征尺度的有效控制[^4]。 #### 应用场景 RMSNorm 常被应用于自然语言处理领域的大规模预训练模型中,尤其是在 Transformer 架构下。由于这些模型通常具有非常深的网络结构,使用 RMSNorm 可以帮助缓解梯度消失或爆炸问题,并提高模型泛化能力[^5]。 以下是实现 RMSNorm 的 Python 代码示例: ```python import torch import torch.nn as nn class RMSNorm(nn.Module): def __init__(self, dim: int, eps: float = 1e-8): super().__init__() self.scale = nn.Parameter(torch.ones(dim)) self.eps = eps def forward(self, x: torch.Tensor): norm_x = x.norm(keepdim=True, p=2, dim=-1) rms = norm_x * torch.rsqrt(norm_x.pow(2).mean(-1, keepdim=True) + self.eps) return rms * self.scale ``` 此代码片段展示了如何构建一个简单的 RMSNorm 层,适用于 PyTorch 框架下的神经网络模型。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值