归一化函数

Normalization

把输入数据调整到特定范围或分布,以便后续处理更稳定、更高效。

机器学习中常用的数据预处理技术,旨在将不同尺度、量纲的特征转换到统一的范围或分布。这对于许多机器学习算法的性能至关重要。

为什么需要归一化/标准化?

  1. 加速收敛: 对于使用梯度下降等优化算法的模型(如神经网络、逻辑回归),如果特征的尺度差异很大,损失函数的等高线会非常扁平,导致梯度下降路径呈“之”字形,收敛速度慢。归一化/标准化可以使等高线更接近圆形,加速收敛。
  2. 避免特征主导: 某些特征的数值范围可能远大于其他特征。如果不进行处理,这些大数值特征可能会在距离计算或权重更新中占据主导地位,使得模型无法公平地学习所有特征的重要性。
  3. 提高模型精度和稳定性: 对于依赖距离度量的算法(如 K 近邻、支持向量机),归一化/标准化可以确保所有特征对距离的贡献是公平的。对于基于权重的模型,它有助于防止权重过大或过小,提高模型的稳定性。

一、输入归一化

Min-Max Scaling

x^=xxminxmaxxmin

Z-score Standardization

x^=xμσ

标准化为均值 0 方差1

3. Decimal Scaling 归一化

4. Max Abs 归一化

二、激活归一化

深度学习中,隐藏层输出归一化,加速训练。

Batch Normalization (BN)

在每个 mini-batch 上, 计算均值 μbatch 和方差 σbatch2, 然后归一化:

x^=xμbatchσbatch2+ϵ

再引入两个可学习参数(仿射变换):

y=γx^+β

应用:

Layer Normalization (LN)

在单一样本的所有神经元上计算均值方差:

x^=xμlayerσlayer2+ϵ

应用:

Instance Normalization (IN)

针对图像的一张一张样本,每个通道单独归一化
应用:

Group Normalization (GN)

把通道分组,每组内部归一化。 介于BN(全局)和IN(局部)之间。
应用:小Batch Size场景(如目标检测)

三、输出归一化

Softmax

把任意实数向量映射成概率分布,核心用于多分类输出注意力机制权重归一化,在神经网络训练中极其重要。

yi=softmax(a1,,aK)i=eaij=1Keajyi=softmax(wiTx+wi0)=exp[wiTx+wi0]j=1Kexp[wjTx+wj0]

将一组输入值转换为概率分布。
最后一层通常使用 Softmax 函数,将输出转换为各个类别的概率。

非常重要!(尤其在神经网络训练时)
记 Softmax 输出为:

yi=Softmax(zi)

则对于输入 zk,Softmax 的偏导数:

yizk={yi(1yi),if i=kyiyk,if ik

这可以写成一个 Jacobian 矩阵(雅可比矩阵):

yz=diag(y)yyT

解释: