matlab 数据白化,数据白化

matlab 数据白化,数据白化白化的原理 随机向量的 零均值化 和 空间解相关 也叫白化 是最常用的两个预处理过程 其中 零均值化 比较简单 而 空间解相关 涉及一些矩阵的知识 设有均值为零的随机信号向量 x 其自相关矩阵为 Rx E xxT I 很明显 Rx 是对称矩阵 且是非负定的 所有特征值都大于或等于 0 现在 寻找一个线性变换 B 对 x 进行变换 即 y Bx 使得 Ry BE xxT BT I 上式的含义是 y 的

白化的原理:

随机向量的“零均值化”和“空间解相关”(也叫白化)是最常用的两个预处理过程,其中“零均值化”比较简单,而“空间解相关”涉及一些矩阵的知识。

设有均值为零的随机信号向量

x ,其自相关矩阵为

Rx=E[xxT]

≠ I

很明显,

Rx 是对称矩阵,且是非负定的(所有特征值都大于或等于0)。

现在,寻找一个线性变换 B 对

x 进行变换,即 y =

Bx ,使得

Ry=

B

E[xxT]BT=

I

上式的含义是:y的各分量是不相关的,即

E[yiyj]=δ ij 。通常将这个过程称为“空间解相关”、“空间白化”或“球化”。

B称为空间解相关矩阵(空间白化矩阵、球化矩阵)。

Rx 的性质可知,其存在特征值分解:

Rx =

Q Σ QT

Q是正交矩阵,

Σ 是对角矩阵,其对角元素是

Rx 特征值。

B =

Σ −1/2QT (1)

则有

Ry

=(Σ −1/2

QT ) Q Σ

QT(Σ −1/2

QT) T =

I

因此,通过矩阵 B 线性变换后,

y 的各个分量变得不相关了。

对于

Rx 来说,特征值分解和奇异值分解是等价的,而奇异值分解的数值算法比特征值分解的数值算法具有更好的稳定性,因此一般都用奇异值分解来构造白化矩阵

B 。

术语“白”来自于白噪声的能谱在所有频率上是一个常数这一事实,就像含有各种颜色的白光谱一样。白化的本质就是去相关加缩放。从上述原理可以看出,白化的过程跟PCA是一样的,经过PCA处理过之后的数据是不相关的,且具有压缩数据的作用,但只能保证各分量信号之间“不相关”,不能保证的“独立性”,,但它能够简化盲分离算法或改善分离算法的性能。

此外,白化矩阵B 肯定不是唯一的。容易看到,任何矩阵

UB (

U 为正交矩阵)也是白化矩阵。这是因为对 y =

UBx,下式成立:

E[yyT ]=UB

E[xxT ]BTUT =

UIUT =

I

一个重要的例子是矩阵

QΣ −1/2 QT 。这也是一个白化矩阵,因为它是用正交矩阵

Q 左乘式(1) 的

B 得到的。这个矩阵称为

Cx 的逆均方根,并用

Cx−1/2 表示,因为它来自于均方根概念向矩阵的标准推广。

图像数据的白化代码(matlab):

该pca函数接口形式为:

[Y,V,E,D] = pca(X)

其中X为输入数据,X的每一列是一个输入样本。返回值Y是对X进行PCA分析后的投影矩阵。V是与X有关的协方差矩阵特征向量的白化矩阵,E是对应的特征向量(列)构成的矩阵,D是对应的特征值构成的对角矩阵(特征值处于对角线上)。返回值中的白化矩阵,特征向量和特征值都是按照对应特征值大小进行排序后了的。

function [Y,V,E,D] = pca(X)

% do PCA on image patches

% INPUT variables:

%

X matrix with image patches as columns

% OUTPUT variables:

%

Y the project matrix of the input data X without whiting

%

V whitening matrix

%

E principal component transformation (orthogonal)

%

D variances of the principal components

%去除直流成分

X = X-ones(size(X,1),1)*mean(X);

%其中r=size(A,1)该语句返回的时矩阵A的行数,c=size(A,2) 该语句返回的时矩阵A的列%数

% Calculate the eigenvalues and eigenvectors of the new covariance

matrix.

covarianceMatrix = X*X’/size(X,2); % 求出其协方差矩阵

%E是特征向量构成,它的每一列是特征向量,D是特征值构成的对角矩阵

%这些特征值和特征向量都没有经过排序

[E, D] = eig(covarianceMatrix);

% Sort the eigenvalues and recompute

matrices

% 因为sort函数是升序排列,而需要的是降序排列,所以先取负号,diag(a)是取出a的对角元素构成

% 一个列向量,这里的dummy是降序排列后的向量,order是其排列顺序

[dummy,order] = sort(diag(-D));

E = E(:,order);%将特征向量按照特征值大小进行降序排列,每一列是一个特征向量

Y = E’*X;

d = diag(D); %d是一个列向量

%dsqrtinv是列向量,特征值开根号后取倒,仍然是与特征值有关的列向量

%其实就是求开根号后的逆矩阵

dsqrtinv = real(d.^(-0.5));

Dsqrtinv =

diag(dsqrtinv(order));%是一个对角矩阵,矩阵中的元素时按降序排列好了的特征值(经过取根号倒后)

D = diag(d(order));%D是一个对角矩阵,其对角元素由特征值从大到小构成

V = Dsqrtinv*E’;%特征值矩阵乘以特征向量矩阵

end

在进行

ICA或者ISA处理之前,首先要对训练样本图像集进行预处理,包括去均值和白化,分为两步进行:首先要对观测数据阵X进行主成分分析,再对X进行白化。

1. 对X进行主成分分析

求X的协方差矩阵,如下式:

C = X * X’;

对C进行奇异值分解,如下式:

C = U*D*U’;

式中D为特征值的对角阵,U为C的奇异值分解中的左奇异阵,U的各个分量u1,u2,…,um为C的特征向量。

2.  对X进行白化

观测数据阵X的白化过程如下:

Z = M * X;

上式中的M为白化矩阵,M = inv(sqrt(D)) *

U’,其中D极为X的协方差矩阵C的奇异值分解中的特征根对角阵。Z即为白化后的数据阵。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/208556.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月19日 上午11:18
下一篇 2026年3月19日 上午11:18


相关推荐

  • Java学习日记:UI篇(6)–谢尔宾斯基地毯图

    Java学习日记:UI篇(6)–谢尔宾斯基地毯图Java 学习日记 UI 篇 6 谢尔宾斯基地毯图引言 谢尔宾斯基地毯是数学家谢尔宾斯基提出的一个分形图形 谢尔宾斯基地毯和谢尔宾斯基三角形基本类似 不同之处在于谢尔宾斯基地毯采用的是正方形进行分形构造 而谢尔宾斯基三角形采用的等边三角形进行分形构造 谢尔宾斯基地毯和它本身的一部分完全相似 减掉一块会破坏自相似性 来自百度百科 是不是还不知道它是啥东西 没事 来张图看看 有密集恐惧症者慎入 思路 nbsp nbsp nbsp nbsp nbsp nbsp nbsp

    2026年3月18日
    2
  • pycharm 注释多行代码[通俗易懂]

    pycharm 注释多行代码[通俗易懂]pycharm注释多行代码:选中要注释的代码块,按ctrl+/

    2022年8月28日
    3
  • MySQL数据库(基础)

    MySQL数据库(基础)目录1.数据库概念1.1数据库是干嘛的?1.2数据库和数据结构是啥关系?​1.3两种类型的数据库2.MySQL数据库2.1MySQL数据库概念2.2MySQL基本操作2.2.1建立数据库2.2.2查看数据库2.2.3选中数据库2.2.4删除数据库2.3MySQL数据类型1.数据库概念1.1数据库是干嘛的?数据库的功能就是用来组织数据,组织很多很多的数据。这些数据通常都是存储在外存(磁盘)数据库提供的核…

    2022年7月24日
    5
  • 数学中的倒三角符号▽

    数学中的倒三角符号▽数学中的倒三角符号含义

    2026年3月19日
    3
  • 系统功能模块划分

    系统功能模块划分一 前端展示系统二 店家管理系统三 超级管理员系统

    2026年3月18日
    2
  • typora主题修改后保存_typora设置字体

    typora主题修改后保存_typora设置字体typora买了几天了,一直思考什么时候去学习下,毕竟,以前是免费的,没那么多讲究,就是把它当做一个普普通通的编辑器使用。似乎也没有用它的任何功能,甚至连官网文档那么详细的解释都没看;可见,虽然使用着免费的优秀的产品,竟然连最基础的功能都不会。换了个主题,这个是看着官网文档做的。主题下载首先,去下载了一个主题,https://theme.typora.io/;选一个自己喜欢的。设置主题其次,打开偏好设置,找到主题保存的文件夹。操作如下:流程图#mermaid-svg-FyDmLYlb0MV3

    2025年7月10日
    10

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号