news 2026/9/4 16:38:32

LayerNorm -> RMSNorm 和 BatchNorm归一化方法解析

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
LayerNorm -> RMSNorm 和 BatchNorm归一化方法解析

文章目录

    • 结论先给(对/错直接判定)
    • 用你说的例子,完全展开一遍
      • 假设
    • 第一步:算 batch 统计量(你问的这一步)
      • 对 **第 0 个 feature(第 0 列)**
      • 对 **第 1 个 feature(第 1 列)**
      • 对 **第 2 个 feature(第 2 列)**
    • 所以你脑子里应该形成的“几何图像”是:
    • 再和 LayerNorm 对照一次(非常重要)
      • BatchNorm(你刚确认的)
      • LayerNorm
    • 用一句“防混淆记忆法”
    • 再补一个你马上会遇到的误区(提前踩刹车)
    • 最后确认一次你的理解(你现在应该是这个状态)
      • 考点速记(面试/试卷一句话答法)

你的理解是完全正确的,而且你问到的是BatchNorm 最核心、也最容易被说模糊的一步。我来把它说到不可能再误解为止。

结论先给(对/错直接判定)

是的
BatchNorm不是算一个“总均值”,
而是:
👉对每一个 feature 维度 d,单独在 batch 维度上算均值和方差。

也就是说:

  • 第 0 维特征 → 用 batch 里所有样本的第 0 个元素算
  • 第 1 维特征 → 用 batch 里所有样本的第 1 个元素算
  • 一共算D 组均值 + D 组方差

用你说的例子,完全展开一遍

假设

  • batch size = 5
  • feature dim = D = 3

输入矩阵:

[
X =
\begin{bmatrix}
x_{1,0} & x_{1,1} & x_{1,2}
x_{2,0} & x_{2,1} & x_{2,2}
x_{3,0} & x_{3,1} & x_{3,2}
x_{4,0} & x_{4,1} & x_{4,2}
x_{5,0} & x_{5,1} & x_{5,2}
\end{bmatrix}
]


第一步:算 batch 统计量(你问的这一步)

第 0 个 feature(第 0 列)

[
\mu_0 = \frac{1}{5}(x_{1,0}+x_{2,0}+x_{3,0}+x_{4,0}+x_{5,0})
]

[
\sigma_0^2 = \frac{1}{5}\sum_{i=1}^5 (x_{i,0}-\mu_0)^2
]


第 1 个 feature(第 1 列)

[
\mu_1 = \frac{1}{5}(x_{1,1}+x_{2,1}+x_{3,1}+x_{4,1}+x_{5,1})
]

[
\sigma_1^2 = \frac{1}{5}\sum_{i=1}^5 (x_{i,1}-\mu_1)^2
]


第 2 个 feature(第 2 列)

同理。


所以你脑子里应该形成的“几何图像”是:

BatchNorm = 沿着 batch 方向切片
feature 0: [x1_0, x2_0, x3_0, x4_0, x5_0] → μ0, σ0 feature 1: [x1_1, x2_1, x3_1, x4_1, x5_1] → μ1, σ1 feature 2: [x1_2, x2_2, x3_2, x4_2, x5_2] → μ2, σ2

不是

把 5×3 = 15 个数混在一起算一个均值

再和 LayerNorm 对照一次(非常重要)

同一个输入:

BatchNorm(你刚确认的)

对每一列(feature): 在 batch 维度算统计量

LayerNorm

对每一行(样本): 在 feature 维度算统计量

数学上:

  • BN:
    [
    \mu_d = \frac{1}{B}\sum_b x_{b,d}
    ]

  • LN:
    [
    \mu_b = \frac{1}{D}\sum_d x_{b,d}
    ]

👉正交的两个方向


用一句“防混淆记忆法”

BatchNorm:同一个神经元,看不同样本
LayerNorm:同一个样本,看不同神经元


再补一个你马上会遇到的误区(提前踩刹车)

❓“那 BatchNorm 是不是假设每个 feature 在 batch 中分布相似?”

✔️是的,这正是它的隐含假设
这也是为什么:

  • 数据异质性大
  • batch 小
  • 多模态 / NLP

→ BN 容易出问题


最后确认一次你的理解(你现在应该是这个状态)

  • ✔️ 不是算一个总均值
  • ✔️ 是D 个均值 + D 个方差
  • ✔️ 每个 feature 只和 batch 中“同一维度”的值有关
  • ✔️ feature 间互不影响(统计层面)

如果你愿意,下一步我可以:

  • 🔍 用PyTorch 的 BatchNorm1d 源码维度对照一遍
  • 🔍 给你画BN / LN / RMSNorm 的张量切片方向
  • 🔍 推导为什么 BN 会“吃掉 bias”

你已经完全站在“搞懂而不是背结论”的那一边了。
RMSNorm 不是 BatchNorm,它属于LayerNorm 的变体,跟 Batch Normalization 完全不是一家人。下面把容易混淆的三个概念一次说清,方便你直接背考点。

名称归一化维度训练/推断行为依赖 batch?典型用途
BatchNorm一个特征维跨样本做归一化(N 维)用当前 batch 的 μ/σ,推断时用滑动平均✅ 依赖 batch sizeCNN、ResNet
LayerNorm一个样本内部跨特征做归一化(C×H×W 或 D 维)不依赖 batch,当前样本即时算 μ/σ❌ 不依赖 batchTransformer、RNN
RMSNormLayerNorm 的简化版:只除以均方根RMS(x),不减去均值同 LayerNorm❌ 不依赖 batch现代 Transformer(LLaMA、T5、GPT-NeoX 等)

考点速记(面试/试卷一句话答法)

  1. RMSNorm 是 LayerNorm 的变体,不是 BatchNorm。
  2. Transformer 系列用 LayerNorm/RMSNorm 而不用 BatchNorm 的核心原因:
    • 训练时 batch size 可能很小(甚至为 1),BatchNorm 统计量噪声大;
    • 推断时序列长度可变,BatchNorm 的滑动平均失效;
    • LayerNorm/RMSNorm 只依赖当前样本,稳定且与 batch 无关。

背住这三句,碰到“LayerNorm 和 BatchNorm 哪个更好/为什么 Transformer 不用 BatchNorm”的题,直接默写就能拿分。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/9/4 2:36:36

实战案例:多版本共存后Vivado的选择性卸载策略

如何安全卸载特定版本的Vivado?——一位FPGA工程师的实战避坑指南你有没有遇到过这种情况:服务器磁盘突然告警,df -h一看,根分区用了95%以上,而排查下来最大的“元凶”竟然是三个不同版本的Vivado?更糟的是…

作者头像 李华
网站建设 2026/9/2 22:19:32

组合逻辑电路结构解析:通俗解释核心要点

组合逻辑电路:从门电路到CPU核心的“即时响应”引擎你有没有想过,为什么按下键盘上的“A”,屏幕上就能立刻显示出来?或者,在CPU执行一条加法指令时,结果几乎是瞬间得出的?这背后离不开一类看似简…

作者头像 李华
网站建设 2026/8/31 9:29:50

企业现在只招落难凤凰和少年将军

元旦期间,和一位资深的HRBP聊天,他谈到,现在企业只招两类人:落难凤凰和少年将军。 1、落难凤凰 什么是落难凤凰? 就是原来在市场上非常有竞争力的人,比如,原来他是在大厂做高管,带…

作者头像 李华
网站建设 2026/8/31 9:01:03

解决HAXM is not installed:Win10/Win11兼容性对比分析

为什么你的Android模拟器跑不起来?一文讲透 HAXM 安装失败的根源与实战解决 你有没有遇到过这种情况:兴冲冲打开 Android Studio,准备调试刚写完的代码,结果点击运行模拟器时弹出一条红字警告——“ HAXM is not installed ”。…

作者头像 李华
网站建设 2026/8/31 8:52:22

深度测评2026研究生必用TOP8AI论文网站:开题报告文献综述全攻略

深度测评2026研究生必用TOP8AI论文网站:开题报告文献综述全攻略 2026年研究生必备AI论文工具测评:从开题到终稿的全方位解析 在当前学术研究日益数字化的背景下,AI论文工具已成为研究生群体不可或缺的辅助利器。然而,面对市场上琳…

作者头像 李华