LayerNorm和BatchNorm区别

NLP中常见的输入格式 B=2, L=3, D=2 (B=批量大小,L=序列长度,D=特征维度)为例,可直观对比 LayerNorm 与 BatchNorm 的核心差异,二者的本质区别是归一化时"统计量的计算范围"完全不同

示例前提:输入数据

假设模型某层输入为 2 个样本(B=2),每个样本是长度为 3 的序列(L=3),每个序列元素有 2 维特征(D=2),输入数据如下(可理解为 2 个句子,每句 3 个词,每个词用 2 维向量表示):

lua 复制代码
# 输入 X: [B, L, D] = [2, 3, 2]
X = [
  [[1, 2],  # 样本1(句子1):词1(1,2)、词2(3,4)、词3(5,6)
   [3, 4],
   [5, 6]],
  [[7, 8],  # 样本2(句子2):词1(7,8)、词2(9,10)、词3(11,12)
   [9, 10],
   [11, 12]]
]

1. BatchNorm 的计算逻辑(同特征,跨样本)

BatchNorm 按"单个特征维度 "分组,计算所有样本在该特征上的全局统计量 (均值/标准差),再用该统计量归一化所有样本的这个特征。

步骤拆解(以特征维度 D=0 和 D=1 为例):

  1. 按特征维度分组
    • 特征 D=0:收集所有样本、所有序列位置的 D=0 特征值 → 1, 3, 5, 7, 9, 11
    • 特征 D=1:收集所有样本、所有序列位置的 D=1 特征值 → 2, 4, 6, 8, 10, 12
  2. 计算每组统计量
    • D=0 均值:(1+3+5+7+9+11)/6 = 6;标准差 ≈ 3.464
    • D=1 均值:(2+4+6+8+10+12)/6 = 7;标准差 ≈ 3.464
  3. 归一化 :所有样本的 D=0 特征用 D=0 的统计量归一化,D=1 同理。
    例如样本1词1的 D=0 归一化后:(1-6)/3.464 ≈ -1.443,D=1 归一化后:(2-7)/3.464 ≈ -1.443。

2. LayerNorm 的计算逻辑(同样本,跨特征)

LayerNorm 按"单个样本 "分组,计算该样本所有序列位置、所有特征维度的统计量 ,再用该统计量归一化这个样本的所有数据。

步骤拆解(以样本1和样本2为例):

  1. 按样本分组
    • 样本1:收集该样本所有数据 → 1, 2, 3, 4, 5, 6
    • 样本2:收集该样本所有数据 → 7, 8, 9, 10, 11, 12
  2. 计算每组统计量
    • 样本1均值:(1+2+3+4+5+6)/6 = 3.5;标准差 ≈ 1.708
    • 样本2均值:(7+8+9+10+11+12)/6 = 9.5;标准差 ≈ 1.708
  3. 归一化 :样本1的所有数据用样本1的统计量归一化,样本2同理。
    例如样本1词1的 D=0 归一化后:(1-3.5)/1.708 ≈ -1.464,D=1 归一化后:(2-3.5)/1.708 ≈ -0.878。

3. 核心区别总结(基于示例)

对比维度 BatchNorm(批量归一化) LayerNorm(层归一化)
统计量计算范围 所有样本 ,仅针对单个特征维度(如示例中跨2个样本算D=0的均值) 仅针对单个样本 ,跨所有特征维度(如示例中仅用样本1的数据算均值)
依赖批量大小 强依赖:若B=1,无法跨样本计算统计量,直接失效 不依赖:B=1时,仍可计算单个样本的所有特征统计量
适用场景 示例外的CV任务(如图像通道固定,B易做大) 示例中的NLP任务(如句子长度可变,B常较小)
相关推荐
fanstuck5 小时前
1M 上下文能怎么用?我用 Seed Evolving 做了一个招标文件版本差异审查器
服务器·人工智能·数据分析·开源·aigc
墨舟的AI笔记7 小时前
React 组件库的 Tree Shaking:按需加载与副作用的工程化治理
人工智能
WoooChi8 小时前
DailyTech-20260724
人工智能·科技·业界资讯
zh路西法8 小时前
【CAM Grad-CAM Grad-CAM++】深度学习模型可解释性:从原理到YOLOv8部署实战
人工智能·深度学习·yolo·yolov8·grad-cam·cam
雨辰AI8 小时前
全集实战:企业级大模型服务化部署全栈指南|FastAPI 封装 + Nginx 负载均衡 + 高可用架构 从单机到生产一步到位
人工智能·ai·负载均衡·fastapi·ai编程
触底反弹8 小时前
Vibe Coding 不写 Git,等于悬崖边飙车
人工智能·git·面试
咖啡屋和酒吧9 小时前
健康管理:现代生活的科学守护
人工智能·生活·精选
星栈独行9 小时前
翻完 Pi 源码:它和 Codex、Claude Code 有何不同
开发语言·javascript·人工智能·程序人生
没有梦想的咸鱼185-1037-16639 小时前
AI-Python机器学习与深度学习技术:CNN/Transformer/扩散模型、SHAP可解释及Hermes智能体自动化
人工智能·python·深度学习·机器学习·chatgpt·cnn·transformer
船漏了就会沉9 小时前
Kimi K3 vs DeepSeek-V4:国产大模型的技术路线之争
人工智能