均方误差#
术语解释#
在机器学习和深度学习中,标准化(Standardization) 是一种关键的预处理技术,旨在将不同特征维度的取值范围调整到相似的尺度,以提高模型训练的稳定性和效率。标准化通过特定的数学变换,改变原始数据的量纲或分布。
-
去均值标准化(Z-Score Standardization):使每一列特征的均值变为 0,方差变为 1。计算公式为
$$ x' = \frac{x-\mu}{\sigma} $$其中 $\mu$ 为均值,$\sigma$ 为标准差。
-
最小-最大值标准化(Min-Max Standardization):通过线性变换将数据映射到特定区间,通常是 $[0,1]$ 或 $[-1, 1]$,使所有特征取值范围一致。
$$ {x}'=\frac{x-\text{min} }{\text{max} -\text{min}}\tag{4-6} $$其中 $\text{min}$ 表示每一列特征的最小值,$\text{max}$ 表示每一列特征的最大值。其实现代码如下:
更多关于机器学习中标准化相关内容可以参见 「4.2 特征标准化:归一化与标准化的原理及实现」。
在深度学习中常见的归一化变体包括:批归一化(BN)、层归一化(LN)、组归一化(GN) 和 均方根归一化(RMSNorm)。这些方法在名字上听起来好像是变了一样,但他们本质上只是在不同的维度(如样本、通道或层)上应用标准化的核心逻辑。

更多相关原理可参见 「6.5 组归一化 GroupNorm:原理、公式与 PyTorch 实现」 和 「6.4 LayerNorm原理:层归一化与 BatchNorm 的区别」 等内容。
出现动机#
-
消除量纲影响:不同特征的取值范围差异过大(如面积 vs. 房间数)会导致模型过度关注数值大的维度。
-
加快收敛速度:如果特征范围差异大,目标函数的等高线会呈现出“椭圆形”,导致梯度下降时产生振荡,收敛缓慢。标准化能使等高线趋于圆形,让模型更快找到最优解。

梯度下降方向图形 -
避免神经元饱和(梯度消失):例如在逻辑回归或深度网络中,如果输入 $z$ 的绝对值过大,会落入激活函数(如 Sigmoid)的饱和区,导致梯度趋于 0,参数无法更新。标准化可将输入拉回到梯度较大的区域。

Sigmoid及其导数图形 -
减轻内部协变量偏移(Internal Covariate Shift):在深层网络中,底层参数的微小变化会引起顶层输入分布的剧烈变化,导致模型需要不断适应新分布。标准化(如 BN)能使每一层输入的分布保持稳定。
优点缺点#
-
优点:
-
提高训练稳定性:标准化能有效缓解梯度消失和梯度爆炸问题,使深层网络的训练变得可能。
-
支持更大的学习率:如批归一化(BN)允许模型使用更高的学习率而不会导致发散,显著加快收敛。
-
不改变数据内在结构:标准化前后的数据分布形状和内在结构信息保持不变,因此不会对实际建模结果产生负面干扰。
-
增强模型泛化能力:它能使模型对输入中的偏移噪声和随机缩放不敏感。
-
-
缺点:
-
计算开销增加:在网络中加入归一化层会带来额外的计算量。例如,层归一化(LN)虽然能让训练步数减少,但每一步的计算时间会增加,在某些场景下整体效率提升并不明显。因此在 LLM 中通常会使用轻量级的 「RMSNorm」 归一化。
-
可能破坏原始表示信息:如果简单地将输入强制标准化到 0 附近,可能会将非线性激活函数(如 Sigmoid)限制在其线性区,丧失模型的非线性表达能力(因此通常需要引入可学习的缩放和平移参数 $\gamma$ 和 $\beta$ 来恢复表示能力)。
-
依赖小批量规模(针对 BN):批归一化受 Batch Size 影响较大。当批量极小时,对均值和方差的估计不准,会导致模型效果显著下降。
-
相关术语#
-
标准化
-
归一化
-
批归一化
-
组归一化
-
层归一化