• 矩阵白化原理及推导


    在看CSP算法时,发现用到了矩阵白化,所以在这里记录一下。
    以下内容来自:【数学】矩阵白化原理及推导矩阵白化

    矩阵白化目的

    如对于任意一个矩阵 X X X,对其求协方差,得到的协方差矩阵 c o v ( X ) cov(X) cov(X)并不一定是一个单位阵(对角阵);【注意:协方差矩阵是对称矩阵,但不一定是对角阵】而矩阵白化就是找到一个变换矩阵 P P P,使得 Y = P X Y=PX Y=PX的协方差矩阵 c o v ( Y ) cov(Y) cov(Y)是一个单位阵(对角阵)。

    因为通过矩阵白化后,协方差是个对角阵(单位阵),那么就代表着矩阵 Y Y Y的各个向量(向量是列向量还是行向量要根据求协方差时 c o v ( X ) = X X T cov(X)=XX^T cov(X)=XXT还是 X T X X^TX XTX来判断)之间就不相关了。

    或者说,矩阵白化的目的就是让被变换的矩阵经过变换后其向量的方差相同(因为是单位阵)。

    矩阵白化推导

    对于矩阵 X X X,其协方差矩阵 c o v ( X ) = X X T cov(X)=XX^T cov(X)=XXT并不一定为对角矩阵,但是对于实对称的协方差矩阵可以有如下的特征值分解:

    c o v ( X ) = Q Λ Q T cov(X)=QΛQ^T cov(X)=QΛQT

    其中的 Λ Λ Λ为由特征值组成的对角矩阵, Q Q Q为对应的特征向量,是一个正交矩阵。现在我们要找到线性变换矩阵 P P P,使得 Y = P X Y=PX Y=PX的协方差矩阵可以是单位阵,即

    c o v ( Y ) = Y Y T = P X ( P X ) T = P X X T P T = P c o v ( X ) P T = E (单位阵) cov(Y)=YY^T=PX(PX)^T=PXX^TP^T=Pcov(X)P^T=E(单位阵) cov(Y)=YYT=PX(PX)T=PXXTPT=Pcov(X)PT=E(单位阵)

    现在令 P = Λ − 1 / 2 Q T P=Λ^{−1/2}Q^T P=Λ1/2QT(矩阵开根号就是其中的每个元素开根号),那么有

    在这里插入图片描述

    所以说当 P = Λ − 1 / 2 Q T P=Λ^{−1/2}Q^T P=Λ1/2QT时,可以使得 Y = P X Y=PX Y=PX的协方差矩阵为单位阵(对角阵)。

    因此 ,通过矩阵白化后,矩阵Y的各个向量(列向量还是行向量根据上文确定)之间就不相关了。

    示意代码

    clc, clear;
    
    x = -10:.1:10;
    x = x +randn(1,length(x));
    y = 0.6*x + randn(1,length(x));
    subplot(2,1,1)
    plot(x, y, 'o')
    axis ([-15 15 -10 10])
    
    data = [x;y];
    C = data*data';
    [u,s,v] = svd(C);
    W = diag(1./sqrt(diag(s)))*v';
    b = W*data;
    subplot(2,1,2)
    plot(b(1,:),b(2,:),'o')
    axis ([-15 15 -10 10])
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17

    在这里插入图片描述
    在这里插入图片描述
    可见白化其实就是让信号尽可能不相关。在分析PCA的时候,我们知道特征值与对应方向的方差有关联,所以白化就是这个思路:首先旋转坐标轴,其次根据对应方向的方差(特征值)进行伸缩,中心化的目的就是为了保证变换前后数据中心对应坐标轴中心,而不至于因为旋转/伸缩而偏离坐标原点太过分:

    在这里插入图片描述
    是不是觉得与PCA相像?后面给出分析。

    秩亏缺矩阵的白化

    当协方差矩阵为秩亏缺时,可以写为:
    在这里插入图片描述
    此时白化矩阵为:

    P = D n × n − 1 / 2 V 1 H P={D_{n×n}}^{−1/2}V_1^H P=Dn×n1/2V1H

    白化后的信号:

    Y = P X Y=PX Y=PX

    此时白化后信号的协方差矩阵:

    在这里插入图片描述

    至此,完成白化。这也容易理解,有效信号占一个子空间,对子空间白化,就是对有效信号进行白化。

    白化与PCA

    PCA前文有分析,给出PCA步骤:

    步骤一: 数据中心化——去均值;

    步骤二: 求解协方差矩阵;

    步骤三: 利用特征值分解/奇异值分解 求解特征值以及特征向量;

    步骤四: 利用特征向量构造投影矩阵;

    步骤五: 利用投影矩阵,得出降维的数据。

    以上文二维数据为例:
    在这里插入图片描述

    • 中心化: 白化的中心化,PCA也需要中心化;
    • 旋转: 白化步骤中的旋转,即旋转后的坐标就是PCA对应的第一、第二投影方向,如图中红线、绿线所示;
    • 拉伸: 不同维度的特征值通常差别较大,在PCA中就是对特征值进行归一化。如果将不同维度的数据看作不同特征,白化步骤的拉伸本质也是特征的归一化

    参考文章

    【数学】矩阵白化原理及推导

    矩阵白化

  • 相关阅读:
    JavaFX:获取屏幕尺寸
    R语言——taxize(第四部分)
    qiankun微前端实践
    maven 常用知识速记
    net-java-php-python-基于mvc的酒吧系统的设计与实现计算机毕业设计程序
    开放式激光振镜运动控制器:C++快速开发
    dom4j基本使用与XPath不生效处理
    Jetson Orin 平台单进程采集四路独立video调试记录
    flutter 消息并发时处理,递归查询
    什么是畏缩型性格?如何改变畏缩型性格?
  • 原文地址:https://blog.csdn.net/qq_41990294/article/details/126117557