news 2026/5/30 3:28:41

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/5/30 4:47:28

SMBus包格式解析:完整指南Pec校验与数据封装

SMBus通信实战:从数据封装到PEC校验的完整拆解你有没有遇到过这样的情况?系统明明正常供电,BMC却误报电池电量为0%,触发关机保护。排查半天,发现是SMBus读回来的数据第6位莫名其妙翻转了——一个0x3F变成了0x7F。这类问…

作者头像 李华
网站建设 2026/5/26 15:44:09

Python轻松生成斐波那契数列

实现功能:Python代码生成斐波那契数列前N项def fibonacci(n):fib_sequence []a, b 0, 1for _ in range(n):fib_sequence.append(a)a, b b, a breturn fib_sequence# 示例:生成前10项 n 10 print(f"斐波那契数列前{n}项:{fibonacci(…

作者头像 李华
网站建设 2026/5/20 22:46:34

Python快速排序实现详解

生成Python代码实现快速排序def quick_sort(arr):if len(arr) < 1:return arrpivot arr[len(arr) // 2]left [x for x in arr if x < pivot]middle [x for x in arr if x pivot]right [x for x in arr if x > pivot]return quick_sort(left) middle quick_sort…

作者头像 李华
网站建设 2026/5/21 10:52:26

黄仁勋年终总结:DeepSeek是去年对美国AI贡献最大的一项工作!AI的算力成本每年下降超10倍;预训练从未结束;5年内会出现大量垂直AI公司

黄仁勋指出&#xff0c;随着市场不断扩大&#xff0c;每个模型公司都可以选择自己想要差异化竞争的垂直方向或细分领域&#xff0c;比如“最强的编程模型”或“最容易使用、最适合大众的消费级产品”&#xff0c;他预测大模型领域未来会呈现出高度多样化的形态。“即便 ChatGPT…

作者头像 李华
网站建设 2026/5/24 12:56:41

2026 开篇:架构师为什么不用 DDD ?

这不是一篇 DDD 教程&#xff0c;也不是最佳实践指南。 这是我在真实项目中尝试使用 DDD 之后的困惑、挣扎&#xff0c;甚至是放弃。 如果你正在考虑要不要上 DDD&#xff0c; 或者你已经在用&#xff0c;但总觉得哪里不对劲&#xff0c; 那这篇文章&#xff0c;可能会戳中你…

作者头像 李华