PCA原理

目录

1、PCA原理

1.1 从去相关的角度看待PCA

1.2 从主成分的角度看待PCA

1.3 从Kahunan-Loeve基的角度看待PCA


1、PCA原理

  • 资料来源:《随机过程》by 清华张颢

1.1 从去相关的角度看待PCA

假设X\in R^N,Y=g(X)\in R^N,存在一个函数(变换)\large Y=g(x)=Ax,使得E(Y_iY_j)=\delta_{ij},,即Y_i,Y_j互不相关,其中X=(X_1,X_2,...,X_n)^T

  • 存在一个变换使得变换后的Y的各个成分是不相关的

  • 我们将有色噪声转化为独立分布的白噪声的过程,称为白化(Whiten),就是去相关

  • 由于E(YY^T)=UE(XX^T)U^T=\delta_{ij}XX^T是一个实对称阵,一定可以相似对角化,且\exists P s.t. P^{-1}E(XX^T)P=\Lambda,且P是由E(XX^T)的特征向量组成,\Lambda=diag(\lambda_1,..,\lambda_n)

1.2 从主成分的角度看待PCA

基于最大投影的分析

1.3 从Kahunan-Loeve基的角度看待PCA

X'=U^TX为PCA变换,逆变换为X=UX'=UU^TX=X。由于变换U是正交的,而变换后的系数{X}'也是不相关的,因此是双正交的K-L展开。

1.4 从SVD的角度看待PCA

https://zhuanlan.zhihu.com/p/58064462 深入理解PCA和SVD的关系

PCA是XX^T的特征值分解,SVD是X^TX的特征值分解,且SVD有对行压缩,有对列压缩,也有对行压缩。

2、Matlab代码示例

利用20帧来做主成分提取,P=[列1,列2,列3],每一列是一个图像向量。

%P的数据格式:要把这个矩阵的两行数据降到一行。C=X.*X'
%       [-1,-1,0,2,0; //特征1
%        -2,0,0,1,1] //特征2
%       X={x1,x2,x3,...,xn}每一个xn为一个样本,样本为列。每一行为特征,此处共两个特征

%将pathch矩阵化为|(w1*w1,n*n)|的矩阵,这样|P(:,i)|每一列是一个patch.就是把图像变成每一个列为一个样本
resh = @(P)reshape(P, [n*n w1*w1])';%注意有一个转置操作才是|(w1*w1,n*n)|的矩阵,49*16348
remove_mean = @(Q)Q - repmat(mean(Q), [w1*w1 1]);
P1 = remove_mean(resh(P));
C = P1*P1';%49*16348 乘以 16348*49,结果是一个49*49的协方差矩阵,共有49个特征值

[V,D] = eig(C); D = diag(D); 
[D,I] = sort(D, 'descend'); V = V(:,I);
plot(D); axis('tight');

for i=1:16
    imageplot( reshape(V(:,i),[w1 w1]), '', 4,4,i );
end

d = 25;%用5*5的patch去表示7*7的patch
iresh = @(Q)reshape(Q', [n n d]);
descriptor = @(f)iresh( V(:,1:d)' * remove_mean(resh(P)) );

H = descriptor(f);%重建算子

同时参考前面EigenFace的代码

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值