博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
矩阵白化
阅读量:5288 次
发布时间:2019-06-14

本文共 1166 字,大约阅读时间需要 3 分钟。

 

作者:桂。

时间:2017-04-11  22:08:55

链接: 

声明:欢迎被转载,不过记得注明出处哦~


前言

在子空间分析、独立成分分析等应用中,经常用到矩阵白化,这里简单总结一下,主要包括:

  1)满秩矩阵的白化;

  2)秩亏缺矩阵的白化;

  3)白化与PCA的关系;

内容为自己的学习记录,其中多有借鉴他人之处,最后一并给出链接。

 

一、满秩矩阵的白化

是随机向量,零均值,其协方差矩阵:

如果协方差矩阵非奇异,对其特征值分解(特征值及SVD的细节信息,):

定义矩阵:

WW成为aa的白化矩阵。白化后的信号:

其协方差矩阵等于单位阵。

总结一下步骤:

步骤一:去均值,中心化

步骤二:求协方差矩阵,并进行特征值分解

步骤三:求解白化矩阵,并得到白化后的信号

给出一段示意代码:

1
2
3
4
5
6
7
8
9
10
x = -10:.1:10;
x = x +
randn
(1,
length
(x));
y = 0.6*x + 
randn
(1,
length
(x));
 
%whiten
data = [x;y];
C = data*data';
[u,s,v] = 
svd
(C);
W = v*
diag
(1./
sqrt
(
diag
(s)))*v';
b = W*data;

对应结果:

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

是不是觉得与PCA相像?后面给出分析。

 

二、秩亏缺矩阵的白化

当协方差矩阵为秩亏缺时,可以写为:

此时白化矩阵为:

白化后的信号:

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

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

 

三、白化与PCA

,给出PCA步骤:

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

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

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

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

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

以上文二维数据为例:

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

参考:

张贤达:《矩阵分析与应用》

转载于:https://www.cnblogs.com/think90/p/11508964.html

你可能感兴趣的文章
Oracle系列之索引
查看>>
Longest Substring Without Repeating Characters
查看>>
数据结构与算法——字符串
查看>>
Strategy(策略)模式
查看>>
P、NP、NP-Complete、NP-hard问题
查看>>
SQL Server 端口号的使用
查看>>
indexof使用
查看>>
Weblogic Cluster环境下apache报错
查看>>
[HAOI2009][BZOJ2431] 逆序对数列
查看>>
对象的引用
查看>>
Visual Studio 2013下JSON可视化工具
查看>>
PHP导出数据到表格的实例
查看>>
back键彻底关闭应用程序
查看>>
hadoop中hive常用的交互式操作
查看>>
dos窗口出现error:could not open ...jvm.cfg解决方法
查看>>
polyfit线性拟合函数
查看>>
swiper插件简介及用法
查看>>
物理引擎入门
查看>>
P1447 [NOI2010]能量采集
查看>>
Linux常用文件介绍
查看>>