1. 归一化技术的基本概念与作用
在深度神经网络训练过程中,数据分布会随着网络层数的加深而发生变化,这种现象被称为内部协变量偏移(Internal Covariate Shift)。归一化技术的核心目标就是解决这一问题,通过调整每一层输入的分布来稳定训练过程。
想象一下教一群学生解题:如果每次给的题目难度忽高忽低(类似数据分布变化),学习效率就会很低。而归一化就像把题目难度统一调整到适合当前学习进度的水平,让学生能更专注掌握解题方法。
常见的归一化技术主要分为两类:
- BatchNorm:按批次维度进行归一化
- LayerNorm:按特征维度进行归一化
在Transformer架构和大模型领域,LayerNorm已经成为标配组件。这与它在处理变长序列、稳定训练过程等方面的优势密不可分。接下来我们将深入解析这两种技术的具体实现和差异。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. BatchNorm的核心原理与局限性
2.1 BatchNorm的工作机制
BatchNorm的计算过程可以分为三个关键步骤:
- 计算批次统计量:对当前mini-batch数据计算均值和方差
python复制mean = np.mean(batch, axis=0) # 沿批次维度 var = np.var(batch, axis=0) - 归一化处理:使用批次统计量对数据进行标准化
python复制
normalized = (batch - mean) / np.sqrt(var + eps) - 缩放平移:引入可学习的参数γ和β恢复表征能力
python复制
output = gamma * normalized + beta
BatchNorm的这种设计使其具有两个显著优势:
- 减少内部协变量偏移,允许使用更大的学习率
- 具有一定的正则化效果(因为使用了批次统计量)
2.2 BatchNorm在大模型中的问题
然而在Transformer和大模型场景下,BatchNorm暴露出一系列严重问题:
- 批次依赖问题:
- 推理时依赖训练阶段的整体统计量(running mean/var)
- 当batch size较小时(如在线学习),统计量估计不准确
