在矩阵代数和机器学习中,白化变换(Whitening Transformation) ,也称为球化变换(Sphering Transformation),是一种重要的线性变换方法。
它的核心目的是:将一组具有相关性的随机变量(数据)转换为一组互不相关、且每个变量的方差都为 1 的新变量。
"白化"这个名字来源于白噪声(White Noise)。白噪声的特点是其功率谱密度在整个频域内是平坦的,意味着各个频段的信号是不相关的,且能量相同。白化变换就是让数据的分布特征接近白噪声。
1. 为什么需要白化?(几何直观)
想象一下,如果你的原始数据在二维空间中呈拉长的椭圆形分布(这意味着两个特征之间存在正相关性,且一个特征的波动范围比另一个大):
- 去相关(Decorrelation):旋转数据,消除特征之间的相关性,使椭圆的轴与坐标轴平行。
- 尺度归一化(Scaling) :压缩或放大坐标轴,使椭圆变成一个完美的圆(在更高维空间中是超球体,这也是"球化"名称的由来)。
经过白化处理后,数据在各个方向上的方差都是 1,且不同维度之间互不干扰。这对于许多机器学习算法(如 ICA 独立成分分析、某些神经网络的输入预处理)至关重要,因为它可以加速模型收敛 并消除冗余信息。
2. 数学定义与目标
设输入数据矩阵为 X∈Rd×nX \in \mathbb{R}^{d \times n}X∈Rd×n(ddd 个特征,nnn 个样本),假设数据已经经过了零均值化(Centering),即每一维特征的均值都为 0。
其协方差矩阵(Covariance Matrix)为:
Σ=Cov(X)=1nXXT\Sigma = \text{Cov}(X) = \frac{1}{n} X X^TΣ=Cov(X)=n1XXT
我们希望寻找一个线性变换矩阵 W∈Rd×dW \in \mathbb{R}^{d \times d}W∈Rd×d,使得变换后的新数据 Y=WXY = W XY=WX 的协方差矩阵 III 为单位矩阵 :
Cov(Y)=Cov(WX)=WCov(X)WT=WΣWT=I\text{Cov}(Y) = \text{Cov}(W X) = W \text{Cov}(X) W^T = W \Sigma W^T = ICov(Y)=Cov(WX)=WCov(X)WT=WΣWT=I
这个矩阵 WWW 就被称为白化矩阵(Whitening Matrix)。
3. 如何计算白化矩阵?
根据协方差矩阵 Σ\SigmaΣ 的性质(它是对称半正定的),我们可以对其进行特征值分解(Eigendecomposition) :
Σ=UΛUT\Sigma = U \Lambda U^TΣ=UΛUT
其中:
- UUU 是正交矩阵,其列向量是 Σ\SigmaΣ 的特征向量(代表旋转方向)。
- Λ\LambdaΛ 是对角矩阵,对角线上的元素是特征值 λi\lambda_iλi(代表数据在对应特征向量方向上的方差)。
为了满足 WΣWT=IW \Sigma W^T = IWΣWT=I,最直接的方法是令 W=Σ−1/2W = \Sigma^{-1/2}W=Σ−1/2。
因为 WWW 的选择不唯一(旋转一个白化后的数据仍然是白化的),所以最常用的白化方法有两种:
方法 A:PCA 白化 (PCA Whitening)
PCA 白化先将数据投影到主成分上(去相关),然后对每个主成分进行缩放(除以标准差)。
- 白化矩阵公式 :
WPCA=Λ−1/2UTW_{PCA} = \Lambda^{-1/2} U^TWPCA=Λ−1/2UT - 物理意义:旋转数据使其与坐标轴对齐,然后缩放每个轴。
- 缺点 :PCA白化会丢失原始数据的空间结构,因为 UTU^TUT 对数据进行了旋转。
方法 B:ZCA 白化 (ZCA Whitening / Zero-phase Whitening)
ZCA 白化在 PCA 白化的基础上,又把数据旋转回了原来的坐标系。
- 白化矩阵公式 :
WZCA=UΛ−1/2UTW_{ZCA} = U \Lambda^{-1/2} U^TWZCA=UΛ−1/2UT - 物理意义 :它在白化数据的同时,使得变换后的数据 YYY 尽可能地接近原始数据 XXX(在最小二乘意义下)。
- 应用场景 :常用于图像处理。因为图像的像素具有空间邻近性,ZCA 白化不会破坏图像的局部结构(处理后图像看起来像是在做边缘检测,保留了图像的轮廓)。
4. 总结对比
| 变换步骤 | 作用 | 结果协方差矩阵形式 |
|---|---|---|
| 原始数据 | 无 | 任意对称矩阵 Σ\SigmaΣ |
| PCA 去相关 | 旋转数据,消除相关性 | 对角矩阵 Λ\LambdaΛ |
| PCA 白化 | 旋转 + 缩放 | 单位矩阵 III(特征方向改变) |
| ZCA 白化 | 旋转 + 缩放 + 旋回 | 单位矩阵 III(尽可能保留原特征方向) |
5. 应用场景
- 深度学习预处理:在早期,白化是图像输入的常见预处理步骤。虽然现在更常用 Batch Normalization(批归一化,它其实可以看作是对单个通道/特征进行的简易白化)。
- 独立成分分析(ICA):白化是 ICA 算法的必要前置步骤,可以极大简化求解独立源的过程。
- 特征解耦:当输入特征之间有很强的线性相关性(共线性)时,白化可以消除这种相关性,使模型更稳定。