news 2026/7/13 21:16:44

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/7/8 3:15:01

通俗解释Elasticsearch如何提升日志查询效率

为什么你的日志查得慢?Elasticsearch 是如何做到秒级检索的?你有没有过这样的经历:线上服务突然报错,用户投诉不断,而你却只能一台台登录服务器,执行grep "ERROR" app.log,眼睁睁看着…

作者头像 李华
网站建设 2026/7/9 15:23:57

高输入阻抗放大器在Multisim中的建模与仿真

高输入阻抗放大器在Multisim中的建模与仿真:从理论到实战的完整路径你有没有遇到过这样的情况?传感器输出明明是10mV的信号,可送到ADC之前却只剩3mV——还没经过任何处理就“缩水”了大半。问题出在哪?往往不是电路设计错了&#…

作者头像 李华
网站建设 2026/7/1 20:33:32

CANoe中通过CAPL实现UDS 31服务的超详细版教程

如何在CANoe中用CAPL玩转UDS 31服务:从协议解析到实战编码你有没有遇到过这样的场景?产线上的ECU刷完固件,需要快速验证烧录是否完整;或者售后技师想触发一次电机自学习,却只能靠烧代码进实车测试?这些看似…

作者头像 李华
网站建设 2026/7/1 19:46:11

多类型内存管理

最近想给64kb rom 以及 4kb ram mcu准备图形系统所以避免不了内存管理,以下为mcu装备的几种内存管理第一款混合堆栈方案(占用大,被抛弃版本)外围辅助头文件#ifndef __GUI_MEMPOOL_CONFIG_H #define __GUI_MEMPOOL_CONFIG_H//内存池…

作者头像 李华
网站建设 2026/7/1 23:28:40

DeepMind发布SIMA 2!打通「感知-推理-行动-反思」闭环

Deepmind推出的SIMA 2,让智能体能在虚拟环境(商业游戏)中,边聊天边进行复杂的多模态推理。作为具身通用智能的原型,SIMA 2已从静态数据集迈向无限程序化生成的训练场。游戏领域的进步,一直是可被视为迈向通…

作者头像 李华
网站建设 2026/7/4 17:39:44

双列召回 关注流召回 + 推荐流召回

在推荐系统中,召回模块负责从海量候选集中快速筛选出初步的几千到上万个item,为后续排序提供输入。由于推荐系统通常同时支持用户主动探索(如关注流)和被动接收(如推荐流),召回策略需要针对不同…

作者头像 李华