大模型常用的Normalization方法,包括BatchNorm、LayerNorm、RMSNorm等方法,并给出样例和公式,通俗易懂

大家好,我是微学AI,今天给大家介绍一下大模型常用的Normalization方法,包括BatchNorm、LayerNorm、RMSNorm等方法,并给出样例和公式,通俗易懂。在大模型搭建与训练中,Normalization是一种重要的技术,用于加速模型训练、提高模型的泛化能力和稳定性。常见的Normalization方法有多种,每种方法都有其特定的应用场景和优势。
在这里插入图片描述

一、Batch Normalization (BN)

1. 定义

  • Batch Normalization是在batch(一批数据)中寻找均值和方差来进行归一化操作的方法。它通过对每一批数据中的每个特征维度进行归一化,使得数据的分布更加稳定,有助于加速模型的训练过程,减少梯度消失或梯度爆炸等问题。它在深度学习中被广泛应用于卷积神经网络(CNN)等模型中。
  • 对于一批数据(数据集)含有 m m m个样本输入 x 1 , x 2 , ⋯   , x m x_1,x_2,\cdots,x_m x1,x2,,xm,首先计算这批数据的均值 μ B ← 1 m ∑ i = 1 m x i \mu_B\leftarrow\frac{1}{m}\sum_{i = 1}^{m}x_i μBm1i=1mxi,方差 σ B 2 ← 1 m ∑ i = 1 m ( x i − μ B ) 2 \sigma^2_B\leftarrow\frac{1}{m}\sum_{i = 1}^{m}(x_i - \mu_B)^2 σB2m1i=1m(xiμB)2,然后对每个样本 x i x_i xi进行归一化 x ^ i ← x i − μ B σ B 2 + ϵ \hat{x}_i\leftarrow\frac{x_i-\mu_B}{\sqrt{\sigma^2_B+\epsilon}} x^iσB2+ϵ xiμB,最后再进行affine transform(仿射变换) y i ← γ x ^ i + β ≡ B N γ , β ( x i ) y_i\leftarrow\gamma\hat{x}_i+\beta\equiv BN_{\gamma,\beta}(x_i) yiγx^i+βBNγ,β(xi),这里的 γ \gamma γ β \beta β是可学习的参数, ϵ \epsilon ϵ是一个很小的数(通常为 1 e − 5 1e - 5 1e5),用于防止分母为 0 0 0。如果 γ \gamma γ β \beta β分别学习为方差和均值,那么标准化操作将被逆操作回来,由此就可视为没有标准化这一步,这使得模型更加灵活。

2. BN样例与公式

  • 假设我们有一个batch大小为 m = 4 m = 4 m=4,特征维度为 n = 2 n = 2 n=2的数据 X = [ x 11 x 12 x 21 x 22 x 31 x 32 x 41 x 42 ] X=\begin{bmatrix}x_{11}&x_{12}\\x_{21}&x_{22}\\x_{31}&x_{32}\\x_{41}&x_{42}\end{bmatrix} X= x11x21x31x41x12x22x32x42
  • 计算均值 μ = [ μ 1 μ 2 ] \mu=\begin{bmatrix}\mu_1\\\mu_2\end{bmatrix} μ=[μ1μ2],其中 μ 1 = 1 4 ( x 11 + x 21 + x 31 + x 41 ) \mu_1=\frac{1}{4}(x_{11}+x_{21}+x_{31}+x_{41}) μ1=41(x11+x21+x31+x41) μ 2 = 1 4 ( x 12 + x 22 + x 32 + x 42 ) \mu_2=\frac{1}{4}(x_{12}+x_{22}+x_{32}+x_{42}) μ2=41(x12+x22+x32+x42)
  • 计算方差 σ 2 = [ σ 1 2 σ 2 2 ] \sigma^2=\begin{bmatrix}\sigma^2_1\\\sigma^2_2\end{bmatrix} σ2=[σ12σ22],其中 σ 1 2 = 1 4 ∑ i = 1 4 ( x i 1 − μ 1 ) 2 \sigma^2_1=\frac{1}{4}\sum_{i = 1}^{4}(x_{i1}-\mu_1)^2 σ12=41i=14(xi1μ1)2 σ 2 2 = 1 4 ∑ i = 1 4 ( x i 2 − μ 2 ) 2 \sigma^2_2=\frac{1}{4}\sum_{i = 1}^{4}(x_{i2}-\mu_2)^2 σ22=41i=14(xi2μ2)2
  • 归一化后的 X ^ = [ x 11 − μ 1 σ 1 2 + ϵ x 12 − μ 2 σ 2 2 + ϵ x 21 − μ 1 σ 1 2 + ϵ x 22 − μ 2 σ 2 2 + ϵ x 31 − μ 1 σ 1 2 + ϵ x 32 − μ 2 σ 2 2 + ϵ x 41 − μ 1 σ 1 2 + ϵ x 42 − μ 2 σ 2 2 + ϵ ] \hat{X}=\begin{bmatrix}\frac{x_{11}-\mu_1}{\sqrt{\sigma^2_1+\epsilon}}&\frac{x_{12}-\mu_2}{\sqrt{\sigma^2_2+\epsilon}}\\\frac{x_{21}-\mu_1}{\sqrt{\sigma^2_1+\epsilon}}&\frac{x_{22}-\mu_2}{\sqrt{\sigma^2_2+\epsilon}}\\\frac{x_{31}-\mu_1}{\sqrt{\sigma^2_1+\epsilon}}&\frac{x_{32}-\mu_2}{\sqrt{\sigma^2_2+\epsilon}}\\\frac{x_{41}-\mu_1}{\sqrt{\sigma^2_1+\epsilon}}&\frac{x_{42}-\mu_2}{\sqrt{\sigma^2_2+\epsilon}}\end{bmatrix} X^= σ12+ϵ x11μ1σ12+ϵ x21μ1σ12+ϵ x31μ1σ12+ϵ x41μ1σ22+ϵ x12μ2σ22+ϵ x22μ2σ22+ϵ x32μ2σ22+ϵ x42μ2
  • 经过仿射变换后的 Y = [ γ 1 x ^ 11 + β 1 γ 2 x ^ 12 + β 2 γ 1 x ^ 21 + β 1 γ 2 x ^ 22 + β 2 γ 1 x ^ 31 + β 1 γ 2 x ^ 32 + β 2 γ 1 x ^ 41 + β 1 γ 2 x ^ 42 + β 2 ] Y=\begin{bmatrix}\gamma_1\hat{x}_{11}+\beta_1&\gamma_2\hat{x}_{12}+\beta_2\\\gamma_1\hat{x}_{21}+\beta_1&\gamma_2\hat{x}_{22}+\beta_2\\\gamma_1\hat{x}_{31}+\beta_1&\gamma_2\hat{x}_{32}+\beta_2\\\gamma_1\hat{x}_{41}+\beta_1&\gamma_2\hat{x}_{42}+\beta_2\end{bmatrix} Y= γ1x^11+β1
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

微学AI

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值