7.4.10 白化 whitening

7.4.10 白化 whitening

回顾PCA, Y = U T A Y = U^TA Y=UTA 即对数据矩阵 A A A 进行旋转变换 U T U^T UT 得到主成分 Y Y Y ,矩阵 Y Y Y 的每列数据为每个学生新成绩向量。所以 PCA 算法本质上是对数据点云进行旋转变换,变换后数据矩阵的协方差矩阵为对角阵 Σ 2 \Sigma^2 Σ2 ,即各个主成分无相关性。因为 A A T = U Σ 2 U T AA^T = U\Sigma^2 U^T AAT=UΣ2UT U U U 是协方差矩阵 A A T AA^T AAT 的特征向量组, Σ 2 \Sigma^2 Σ2 是特征值对角阵。

变换后数据矩阵 Y Y Y 线性无关,每个分量的方差为 σ i 2 \sigma^2_i σi2 。我们还可以进一步变换 Z = Σ − 1 Y = Σ − 1 U T A Z=\Sigma^{-1}Y=\Sigma^{-1}U^TA Z=Σ1Y=Σ1UTA,使其每个分量的方差为 1 1 1
Z T Z = Y T Σ − T Σ − 1 Y = Y T Σ − T Σ − 1 Y = A T U Σ − T Σ − 1 U T A = ( V Σ T U T ) U Σ − T Σ − 1 U T ( U Σ V T ) = E Z^TZ = Y^T\Sigma^{-T}\Sigma^{-1}Y = Y^T\Sigma^{-T}\Sigma^{-1}Y \\ = A^TU\Sigma^{-T}\Sigma^{-1}U^TA \\ = (V\Sigma^TU^T) U\Sigma^{-T}\Sigma^{-1}U^T (U\Sigma V^T) \\ = E ZTZ=YTΣTΣ1Y=YTΣTΣ1Y=ATUΣTΣ1UTA=(VΣTUT)UΣTΣ1UT(UΣVT)=E

数据矩阵 Z Z Z 的协方差矩阵为单位阵 E E E ,即每个分量均值为 0 0 0,方差为 1 1 1,每个分量从均值和方差角度看都是一样的,这时称其为白化数据矩阵。由于白化 Z = Σ − 1 Y Z=\Sigma^{-1}Y Z=Σ1Y,需要除以奇异值,当奇异值趋近 0 0 0 时,白化分量会趋于无穷大,造成数值不稳定,而且奇异值趋近 0 0 0 的分量基本都是噪声引起的,故一般只对奇异值较大的主成分进行白化。

白化数据矩阵有个重要性质,即任意正交矩阵 Q Q Q ,变换数据矩阵 X = Q Z X=QZ X=QZ ,有 X T X = Z T Q T Q Z = Z T E Z = E X^TX = Z^TQ^TQZ = Z^TEZ = E XTX=ZTQTQZ=ZTEZ=E ,数据矩阵 X X X 也是白化数据矩阵,即白化后的数据矩阵任意旋转操作后还是白化数据矩阵,在旋转操作下具有不变性。当正交矩阵取 U U U 时,此时 Z = U Σ − 1 U T A = W A Z = U\Sigma^{-1}U^TA = WA Z=UΣ1UTA=WA 称为 ZCA 白化。白化变换矩阵 W = U Σ − 1 U T W=U\Sigma^{-1}U^T W=UΣ1UT 有个重要性质
W W A A T = ( U Σ − 1 U T U Σ − 1 U T ) ( U Σ 2 U T ) = E WWAA^T = (U\Sigma^{-1}U^TU\Sigma^{-1}U^T)(U\Sigma^2 U^T) = E WWAAT=(UΣ1UTUΣ1UT)(UΣ2UT)=E

W W WW WW A A T AA^T AAT 的逆矩阵, W W W A A T AA^T AAT 的逆矩阵的平方根矩阵。

### 白化处理的定义 白化是一种数据预处理技术,旨在使输入数据具有单位方差且不同特征之间相互独立。具体来说,给定一个随机向量 \( \mathbf{x} \),通过某种变换将其转换为新的随机向量 \( \mathbf{y} = W\mathbf{x} \),使得 \( \mathbf{y} \) 的协方差矩阵为单位矩阵 \( I \)[^4]。 这种变换不仅消除了各变量之间的相关性,还调整了它们的尺度,使其标准差均为1。这有助于简化后续分析过程中的计算复杂度,并提高某些机器学习算法的表现效果[^4]。 ### 应用领域 #### 1. 图像处理 在图像去噪和平滑滤波过程中,白化可以去除像素间的冗余信息,增强边缘细节,从而改善视觉质量[^5]。 #### 2. 自然语言处理 词嵌入模型训练前常需对文本数据执行白化操作,以减少词语分布的空间维度差异带来的影响,进而提升语义表示的一致性和准确性[^6]。 #### 3. 神经网络初始化 为了加速深层神经网络收敛速度,在权重参数初始化阶段可利用白化方法确保每一层激活值保持适当范围内的波动幅度,防止梯度消失或爆炸现象发生[^7]。 ```python import numpy as np def whiten(X): """ 对输入矩阵X进行白化处理 参数: X (numpy.ndarray): 输入的数据矩阵, 形状(n_samples, n_features) 返回: Y (numpy.ndarray): 经过白化的数据矩阵, 同样形状(n_samples, n_features) """ # 计算均值和协方差矩阵 mean = np.mean(X, axis=0) cov = np.cov((X - mean).T) # 特征值分解得到D(Λ), V(Q) D, V = np.linalg.eigh(cov) # 构建对角阵Λ^(−1/2) Lambda_inv_half = np.diag(D ** (-0.5)) # 进行白化变换W=QΛ^(−1/2)Q^T W = V @ Lambda_inv_half @ V.T # 输出经过白化后的样本集Y=W*(X-mu) Y = (X - mean) @ W return Y ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值