kl变换及例题
- 格式:ppt
- 大小:433.50 KB
- 文档页数:19
实验二:KL 变换实验学时:4学时实验目的:1. 掌握特征提取的基本方法。
2. 掌握基于KL 变换的特征提取的方法。
3. 培养学生灵活使用KL 变换进行模式识别的能力。
实验内容:给出ORL 人脸数据库,共有400幅人脸图像(40人,每人10幅,大小为92*112象素)。
其中第一个人的图像如下图:选取数据库中的部分样本(每个人的前5张图片)作为训练样本,其余作为未知的测试样本。
从训练样本中得到KL 变换矩阵,然后对训练样本和测试样本都进行变换,用变换后的数据作最近邻识别,距离可以为对应灰度值之差的平方和,统计识别率。
KL 变换方法简介:设图像数据库图像大小为Width ⨯Height ,令d = Width ⨯Height ,则每幅图像可以用按行或者按列堆成一个d 维向量表示。
令111()()N T T t i i t t i S x m x m N N==--=ΦΦ∑,其中1(,,)t N x m x m Φ=-- 。
特征脸方法(KL 变换方法)是从PCA 方法导出的。
PCA 方法就是要寻找正交归一的变换矩阵12(,,,)d L L W u u u R ⨯=∈ ,1T WW =,使得判别准则()()T t J W tr W S W =达到最大,即arg max ()T t WW tr W S W =。
也就是在T y W x =的正交变换后使得总体散度矩阵y T t t S W S W =的迹最大,即各个样本分离得尽量远,将样本的方差尽量的保留下来,和原样本的均方误差尽量小。
可以证明求得12(,,,)L W u u u = 就是对应于矩阵t S 的前L 个最大的特征值的特征向量。
即12(,,,)L W u u u = 的各列向量是下面特征方程的解:t i i i S u u λ=显然,变换后的y T t t S W S W =是一个对角阵,对角线上的元素为相应的特征值,即1()dt i i tr S λ==∑,也就是说每个特征值都代表了相应的特征向量保留总体散度(方差)的能力。
kl变换例题
K-L变换(Karhunen-Loève Transform)是一种常用的特征提取方法,用于将高维数据投影到低维空间,同时保留数据的主要特征。
以下是一个简单的K-L变换的例子:假设我们有一个二维数据集,包含100个样本,每个样本有2个特征(X1和X2)。
首先,我们需要计算协方差矩阵,该矩阵描述了数据集的方差和协方差。
协方差矩阵计算如下:
Σ = (σ11 σ12; σ21 σ22)
其中,σ11 = Σ (X1 - μ1)^2,σ12 = Σ (X1 - μ1) * (X2 - μ2),σ21 = Σ (X2 - μ2) * (X1 - μ1),σ22 = Σ (X2 - μ2)^2。
μ1和μ2分别是X1和X2的均值。
接下来,我们需要计算协方差矩阵Σ的特征值λi和特征向量ei。
这些特征向量将构成新的坐标系,其中新的坐标轴分别与λi对应。
选择前d个特征向量构成投影矩阵E,将数据集投影到这d个特征向量上:
Y = E * X
其中,Y是投影后的数据,X是原始数据。
在本例中,我们将选择前d个最大的特征值对应的特征向量作为投影矩阵。
最后,我们可以将原始数据集X投影到新的坐标系上,得到低维特征Y。
Y将保留原始数据的主要特征,可以用于分类、聚类等机器学习任务。
Karhunen-Loeve 变换的应用摘要:本文对Karhunen-Loeve 变换的原理进行了说明,重点分析了K-L 变换的性质,结合K-L 变换的性质,对K-L 变换的具体应用进行了展示。
利用K-L 变换在人脸识别、遥感图像特征提取、地震波噪声抑制、数字图像压缩、语音信号增强中的具体利用,深入总结了K-L 变换在模式识别、噪声抑制和数据压缩领域的重要性。
关键字: Karhunen-Loeve 变换 K-L 变换 K-L 展开1、 Karhunen-Loeve 变换定义1.1Karhunen-Loeve 变换的提出在模式识别和图像处理等现实问题中,需要解决的一个主要的问题就是降维,通常我们选择的特征彼此相关,而在识别这些特征时,数据量大且效率低下。
如果我们能减少特征的数量,即减少特征空间的维数,那么我们将以更少的存储和计算复杂度获得更好的准确性。
于是我们需要一种合理的综合性方法,使得原本相关的特征转化为彼此不相关,并在特征量的个数减少的同时,尽量不损失或者稍损失原特征中所包含的信息。
Karhunen-Loeve 变换也常称为主成分变换(PCA)或霍特林变换,就可以简化大维数的数据集合,而且它的协方差矩阵除对角线以外的元素都是零,消除了数据之间的相关性。
所以可以用于信息压缩、图像处理、模式识别等应用中。
Karhunen-Loeve 变换,是以矢量信号X 的协方差矩阵Ф的归一化正交特征矢量q 所构成的正交矩阵Q ,来对该矢量信号X 做正交变换Y=QX ,则称此变换为K-L 变换(K-LT 或KLT ),K-LT 是Karhuner-Loeve Transform 的简称,有的文献资料也写作KLT 。
可见,要实现KLT ,首先要从信号求出其协方差矩阵Ф,再由Ф求出正交矩阵Q 。
Ф的求法与自相关矩阵求法类似。
1.2Karhunen-Loeve 展开及其性质设零均值平稳随机过程u(n)构成的M 维随机向量为u(n),相应的相关矩阵为R ,则向量u(n)可以表示为R 的归一化特征向量M 21q ,q ,q 的线性组合,即iMi i q c n u ∑==1)(,此式称为u(n)的Karhunen-Loeve 展开式,展开式的系数i c 是由内积 )(c i n u q Hi =M ,1,2,i =定义的随机变量,且有{}0E =i c ,{}⎩⎨⎧≠==l i li c c i li ,0,E *λ。
模式识别作业三一、编程要求:编程实现KL变换,并对TM六波段图像进行演算。
KL变换的思想是:从n维特征选取m维特征,删去的n-m维特征不一定就是无用的信息,如何在信息损失最小的情况下选取特征,在理论上就显得更严密些。
通常采用正交变换,得到新的经变换的模式,以保证信息损失最小情况下获得有利于分类的特征。
二、编程思想:将6副图象依次输入获得灰度值存在一个6*size(size为一副图象的像素数)的二维数组中,计算每个波段的灰度均值,然后计算协方差矩阵,得出特征值和特征向量,再重新计算要输出的处理的图象的灰度。
三、核心代码:void CKLchangeView::Oninput() //TM图象数据读入{AfxMessageBox("注意:请一次将6副图象都读入!");//读图象的方法int flag=0;while(flag<6){CFileDialog dlg(TRUE,"bmp",".bmp");if(dlg.DoModal()==IDOK){m_NewFileName[flag]=dlg.GetFileName();for(int j=0;j<5;j++){if(flag==j||m_NewFileName[flag]!=m_NewFileName[j]) continue;else{AfxMessageBox("已打开过的图象!请按方法重新打开!");flag=0;for(int i=0;i<6;i++) m_NewFileName[i]="";return;}}NewFileName=m_NewFileName[flag];flag++;}//判断是否是已经打开的图象,若已经打开,则要重新按方法打开else //不读图象,或是只是要看图象{for(int i=0;i<6;i++) m_NewFileName[i]="";return;}CDC *pDC = GetWindowDC();CFile f(NewFileName,0);m_pDib.Read(&f);//读图象if(m_pDib.m_nColorTableEntries!=256)//判断是否是灰度图象{AfxMessageBox("请打开灰度图象!");return;}CKLchangeDoc* pDoc = GetDocument();pDoc->pDib=&m_pDib;OnDraw(pDC);//调用OnDraw函数绘图sizeImage = m_pDib.GetDimensions();sizeSaveImage = m_pDib.GetDibSaveDim();a=sizeSaveImage.cx * sizeSaveImage.cy;//象素数if(flag==1) tm=CMatrix(6,a);//开第一副图象时为矩阵分配内存//将每幅图象象素灰度值放入矩阵中if(flag==1)for(int i=0;i<a;i++){tm.m_pData[i]=*(m_pDib.m_lpImage+sizeSaveImage.cx*(i/sizeImage.cx)+i%sizeImage.cx );}if(flag==2)for(int i=0;i<a;i++){tm.m_pData[a+i]=*(m_pDib.m_lpImage+sizeSaveImage.cx*(i/sizeImage.cx)+i%sizeImage. cx);}if(flag==3)for(int i=0;i<a;i++){tm.m_pData[2*a+i]=*(m_pDib.m_lpImage+sizeSaveImage.cx*(i/sizeImage.cx)+i%sizeImag e.cx);}if(flag==4)for(int i=0;i<a;i++){tm.m_pData[3*a+i]=*(m_pDib.m_lpImage+sizeSaveImage.cx*(i/sizeImage.cx)+i%sizeImag e.cx);}if(flag==5)for(int i=0;i<a;i++){tm.m_pData[4*a+i]=*(m_pDib.m_lpImage+sizeSaveImage.cx*(i/sizeImage.cx)+i%sizeImag e.cx);}if(flag==6)for(int i=0;i<a;i++){tm.m_pData[5*a+i]=*(m_pDib.m_lpImage+sizeSaveImage.cx*(i/sizeImage.cx)+i%sizeImag e.cx);}}}void CKLchangeView::OnKl() //KL变换计算{int i,j;xfea.Init(6,1);xfeat.Init(1,6);temp=CMatrix(6,6);feature=new double[6];fea.Init(6,6);double tmave[6];//求每幅图象的灰度均值for (i=0;i<6;i++){tmave[i]=0;for(j=0;j<a;j++){tmave[i]+=tm.m_pData[i*a+j];}tmave[i]/=(double)a;}//求方差矩阵Rfor(j=0;j<36;j++){temp.m_pData[j]=0.0;for(i=0;i<a;i++){temp.m_pData[j]+=(tm.m_pData[(j/6)*a+i%6]-tmave[j/6])*(tm.m_pData[(j%6)*a+i%6]-tmave[ j%6]);}temp.m_pData[j]/=(double)a;}temp.JacobiEigenv2(feature, fea, 0.000001);//求特征值和特征向量double t=0.0;double featuretemp[6];//临时变量for(i=0;i<6;i++)featuretemp[i]=feature[i];//给临时数组赋值for(i=0;i<6;i++)//"冒泡法"将特征值排序for(j=0;j<5;j++)if(feature[j]>feature[j+1]){t=feature[j];feature[j]=feature[j+1];feature[j+1]=t;}for(i=0;i<6;i++)//求出特征值排序后对应在特征值数组中的位置for(j=0;j<6;j++)if(feature[i]==featuretemp[j]){index[i]=j;}}void CKLchangeView::OnFirst() //第一主分量{if(NewFileName=="") {AfxMessageBox("请先读入图象数据!");return;} if(fea.m_pData[0]==0) OnKl();result.Init(1,a);for(int i=0;i<a;i++){for(int j=0;j<6;j++)result.m_pData[i]+=fea.m_pData[index[5]+j*6]*tm.m_pData[j*a+i];}Draw();}void CKLchangeView::OnFive() //第五主分量{if(NewFileName=="") {AfxMessageBox("请先读入图象数据!");return;} if(fea.m_pData[0]==0) OnKl();result.Init(1,a);for(int i=0;i<a;i++){for(int j=0;j<6;j++)result.m_pData[i]+=fea.m_pData[index[1]+j*6]*tm.m_pData[j*a+i];}Draw();}void CKLchangeView::OnFour() //第四主分量{if(NewFileName=="") {AfxMessageBox("请先读入图象数据!");return;} if(fea.m_pData[0]==0) OnKl();result.Init(1,a);for(int i=0;i<a;i++){for(int j=0;j<6;j++)result.m_pData[i]+=fea.m_pData[index[2]+j*6]*tm.m_pData[j*a+i];}Draw();}void CKLchangeView::OnSecond() //第二主分量{if(NewFileName=="") {AfxMessageBox("请先读入图象数据!");return;} if(fea.m_pData[0]==0) OnKl();result.Init(1,a);for(int i=0;i<a;i++){for(int j=0;j<6;j++)result.m_pData[i]+=fea.m_pData[index[4]+j*6]*tm.m_pData[j*a+i];}Draw();}void CKLchangeView::OnSix() //第六主分量{if(NewFileName=="") {AfxMessageBox("请先读入图象数据!");return;}if(fea.m_pData[0]==0) OnKl();result.Init(1,a);for(int i=0;i<a;i++){for(int j=0;j<6;j++)result.m_pData[i]+=fea.m_pData[index[0]+j*6]*tm.m_pData[j*a+i];}Draw();}void CKLchangeView::OnThird() //第三主分量{if(NewFileName=="") {AfxMessageBox("请先读入图象数据!");return;}if(fea.m_pData[0]==0) OnKl();result.Init(1,a);for(int i=0;i<a;i++){for(int j=0;j<6;j++)result.m_pData[i]+=fea.m_pData[index[3]+j*6]*tm.m_pData[j*a+i];}Draw();}void CKLchangeView::Draw() //图象输出{int i;for(i=0;i<a;i++)//处理越界的灰度值{if(result.m_pData[i]<0) result.m_pData[i]=0;if(result.m_pData[i]>255) result.m_pData[i]=255;}for (i = 0; i <a; i ++)//重新给图象每个象素赋灰度值{ unsigned char *pData=m_pDib.m_lpImage+sizeSaveImage.cx*(i/sizeImage.cx)+i%sizeImage.cx;*pData=(BYTE)(long)(result.m_pData[i]+0.5);}CDC *pDC = GetWindowDC();CKLchangeDoc* pDoc = GetDocument();pDoc->pDib=&m_pDib;OnDraw(pDC);//将处理后图象绘出}。
K-L变换实验K-L变换实验⼀、实验⽬的(1)加深对K-L变换的基本思想的认识和理解;(2)编写实现基于K-L变换的⼈脸识别的程序。
⼆、实验原理K-L变换的基本原理特征脸⽅法是基于K-L变换的⼈脸识别⽅法,K-L变换是图像压缩的⼀种最优正交变换。
⾼维的图像空间经过K-L 变换后得到⼀组新的正交基,保留其中重要的正交基,由这些基可以张成低维线性空间。
如果假设⼈脸在这些低维线性空间的投影具有可分性,就可以将这些投影⽤作识别的特征⽮量,这就是特征脸⽅法⽤于⼈脸识别的基本思想。
在⼈脸识别中,可以⽤离散K-L变换对⼈脸图像的原始空间进⾏转换,即构造⼈脸图像数据集的协⽅差矩阵,对之进⾏正交变换,求出协⽅差矩阵的特征向量,再依据特征值的⼤⼩对这些特征向量进⾏排序,每⼀个向量表⽰⼈脸图像中⼀个不同数量的变量,这些特征向量表⽰特征的⼀个集合,它们共同表⽰⼀个⼈脸图像。
在⼈脸识别领域,⼈们常称这些特征向量为特征脸。
每⼀个体⼈脸图像都可以确切地表⽰为⼀组特征脸的线性组合。
这样我们⾸先通过有指导的训练(给定训练样本集已知分类)得到样本集在特征脸空间中的坐标。
训练完成后,输⼊待辨识图像,求得在特征脸空间的坐标,采⽤最近邻法,就可以实现⼈脸识别。
三、实验内容从ORL⼈脸数据库中选出3个⼈,每个⼈选3张,共九张。
根据K-L变换求出九张特征脸,然后再从这三个⼈的其他照⽚中选⼏张照⽚,降维后求出与本征脸的距离,最⼩距离对应的就是判断出来的⼈脸。
四、实验程序clc;clear all;A1=imread('C:\Users\Administrator\Desktop\模式识别⽤图\s8_1.bmp')A2=imread('C:\Users\Administrator\Desktop\模式识别⽤图\s8_2.bmp')A3=imread('C:\Users\Administrator\Desktop\模式识别⽤图\s8_3.bmp')B1=imread('C:\Users\Administrator\Desktop\模式识别⽤图\s10_1.bmp')B2=imread('C:\Users\Administrator\Desktop\模式识别⽤图\s10_2.bmp')B3=imread('C:\Users\Administrator\Desktop\模式识别⽤图\s10_3.bmp')C1=imread('C:\Users\Administrator\Desktop\模式识别⽤图\s30_1.bmp')C2=imread('C:\Users\Administrator\Desktop\模式识别⽤图\s30_2.bmp')C3=imread('C:\Users\Administrator\Desktop\模式识别⽤图\s30_3.bmp')S1=reshape(A1,112*92,1);S2=reshape(A2,112*92,1);S3=reshape(A3,112*92,1);S4=reshape(B1,112*92,1);S5=reshape(B2,112*92,1);S6=reshape(B3,112*92,1);S7=reshape(C1,112*92,1);S8=reshape(C2,112*92,1);S9=reshape(C3,112*92,1);S=[S1,S2,S3,S4,S5,S6,S7,S8,S9];S=double(S);R=S'*S;[V,d]=eig(R)u=S*V/sqrt(D);V=fliplr(V);D=fliplr(D);U=S*V;U=orth(U);E=sum(D);G=sum(E,2);N=3for i=1:NE=sum(E(1:i),2);ratio=E/G;if ratio>0.99break;endendA= U(:,1:i)';y= A*S;B=zeros(6,N);for i=1:Nfor j=4:9Test=S(:,(i-1)*9+j)-J;H=A*Test; %求得其在特征脸空间的坐标for k=1:NC=H-y(:,k);K(:,k)=C'*C;end[h,I]=min(K); %最近邻法if I==iB(j-3,i)=1;elseB(j-3,i)=0;end%图像是否识别,识别出来为1,未识别出来为0 endendD=sum(B);D=sum(D,2);Rate=D/(6*N) %识别正确率五、实验结果及结论:1、d =1.0e+09 *0.0016 0 0 0 0 0 0 0 00 0.0022 0 0 0 0 0 0 00 0 0.0031 0 0 0 0 0 00 0 0 0.0039 0 0 0 0 00 0 0 0 0.0065 0 0 0 00 0 0 0 0 0.0109 0 0 00 0 0 0 0 0 0.0289 0 00 0 0 0 0 0 0 0.0316 00 0 0 0 0 0 0 0 1.2112 K-L变换进⾏⼈脸识别正确率2、K-L变换进⾏⼈脸识别,只需要很少⼏个本征脸就能够⽐较好地表⽰和分类,⼤⼤压缩了特征维数;3、从实验结果可以看出,根据K-L变换的性质,这种降维的⽅法,误差较⼩;4、实验难度不是很⼤,只是对MATLAB不够熟悉,造成耗费时间较多,进度较慢,然⽽每编⼀次都收获许多,在与其他⼈交流中进步较快;5、K-L变换进⾏⼈脸识别正确率不是很⾼,只是相对不错,在实际运⽤中仍然可能会出现虚警现象。
模式识别作业报告组员:2011302265 孔素瑶2011302268 马征2011302273 周昳慧一、实验要求用FAMALE.TXT 和MALE.TXT 的数据作为本次实验使用的样本集,利用K-L 变换对该样本集进行变换,与过去用Fisher 线性判别方法或其它方法得到的分类面进行比较,从而加深对所学内容的理解和感性认识。
二、具体做法1. 不考虑类别信息对整个样本集进行K-L 变换(即PCA ),并将计算出的新特征方向表示在二维平面上,考察投影到特征值最大的方向后男女样本的分布情况并用该主成分进行分类。
2. 利用类平均向量提取判别信息,选取最好的投影方向,考察投影后样本的分布情况并用该投影方向进行分类。
3. 将上述投影和分类情况与以前做的各种分类情况比较,考察各自的特点和相互关系。
三、实验原理设n 维随机向量T n x x x x ),,(21⋯=,其均值向量][x E u =,相关矩阵][Tx xx E R =,协方差矩阵]))([(Tx u x u x E C --=,x 经正交变换后产生向量T n y y y y ),,(21⋯=。
设有标准正交变换矩阵)),,((21n t t t T T ⋯=,(即I T T T=)Tn T n y y y x t t t x T y ),,(),,(2121⋯=⋯==,x t y Ti i = (1,2,)i n =∑=-===ni i i Tt y y T y T x 11(称为 x 的K-L 展开式)取前m 项为x 的估计值1ˆmi i i xy t ==∑ 1m n ≤<其均方误差为∑∑+=+=∧∧==--=nm i ii nm i iTy y E yE x x x x E m 1'12][][)]()[()(ξ∑∑∑+=+=+====nm i i x inm i inm i ii t R ttx x E t y y E m 1'1''1')(][)(ξ在I T T ='的约束条件下,要使均方误差min )]()[()(1''→=--=∑+=∧∧nm i i x it R tx x x x E m ξ为此设定准则函数∑∑+=+=--=nm i i Ti i nm i i x Ti t t t R t J 11)1(λ由0iJt ∂=∂可得()0x i i R I t λ-= 1,...,i m n =+ 即x i i i R t t λ= 1,...,i m n =+表明: λi 是x R 的特征值,而i t 是相应的特征向量。
K-L 变换(Karhunen-Lo éve )离散K-L 展开式的矩阵表示设非周期随机过程)(t x ,在采样区间[a, b]作均匀采样,采样样本表示为向量⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎣⎡=)()()(21D t x t x t x x (理解为每个样本向量有D 个特征)其相关函数][T xx E 为D 维方阵,有D 个线性无关的特征向量。
【假如有N 个采样样本,⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎣⎡=⨯DN D D N N ND x x x x x x x x x212222111211x , 相关函数][Txx E =TN D N D N⨯⨯x x 1】 则采样序列x 的展开式仅含有D 项∑-=Dj j c 1jx ϕ,式中,j ϕ为第j 个正交基函数(也叫基向量),j c 为对应的展开式系数。
【对于“K-L 展开式满足正交变换,且是最小均方误差的”证明如下:】假设向量集合),2,1}({ =i i x 中的x 可以用完备正交归一向量系或者称为变换基向量),,2,1(∞= j i u 来展开,则有∑∞==1j j j c u x基向量满足正交性⎩⎨⎧≠==i j ij j T i ,0,1u u在离散情况下使用有限基向量集合来表示,即∑==dj jj c 1ˆux其均方误差为][)]()[()]ˆ()ˆ[(1211∑∑∑∞+=∞+=∞+===--=d j jd j jjT d j jjTcE c c E E u u x x xx ξ将展开式系数x u Tj j c =(理解为x 在基坐标上的投影,而展开式系数就是坐标值)代入均方误差表达式,有∑∑∑∞+=∞+=∞+====111)(][d j jT jd j j TT jd j j TT jE E ψuu u xx uu xx u ξ(理解上式中j TT j j c u x x u ==,因为是行向量和列向量))(T E xx ψ=为自相关矩阵(这是一个对称矩阵,因为T T T xx xx =)()由拉格朗日条件极值法求均方误差的极限,相应的拉格朗日函数为]1[)(11--=∑∑∞+=∞+=jT jd j jd j j Tjj L u u ψu uu λ令0)(=j jL d du u (理解j 从的d +1取到无穷,总共就有这么多方程) 则022=-j j j u ψu λ得0)(=-j j u E ψλ,∞+=,,1 d j 【 这是矩阵的导数问题!相关概念知识如下: 令A 是一个与列向量x 无关的矩阵,则T ∂=∂x A A x , ()T T T ∂=+=+∂x AxAx A x A A x x 特别地,若A 为对称矩阵,则有2T ∂=∂x AxAx x证明:前半部分:假设111221112222111112212211122111222222()()()()Tx a x a x a x a x x a a aa x a x a x a x a x x ∂∂⎡⎤++⎢⎥∂∂⎡⎤∂⎢⎥===⎢⎥∂∂∂⎢⎥⎣⎦++⎢⎥∂∂⎣⎦x A A x 后半部分:11nnTij i j i j A x x ===∑∑x Ax — 一个多项式梯度T ∂∂x Axx(是一个列向量)的第k 个分量为1111[]T n n n nk ij ijik ikjji j i j kA x x A x A xx ====∂∂==+∂∂∑∑∑∑x Ax x()T T T ∂=+=+∂x AxA x Ax A A x x】 其解就是使均方误差为极小的基向量j u ,同时求得的j u 为矩阵ψ的特征向量,其对应的特征值为j λ,则截断均方误差为∑∞+==1d j jλξ(此处用矩阵对角化的概念理解j j T j λ=ψu u ),式中j λ为矩阵ψ的特征值。
1. 主分量分析(PCA )、K-L 变换(Hotelling 变换)一般而言,这一方法的目的是寻找任意统计分布的数据集合之主要分量的子集。
相应的基向量组满足正交性且由它定义的子空间最优地考虑了数据的相关性。
将原始数据集合变换到主分量空间使单一数据样本的互相关性(cross-correlation)降低到最低点。
设s j x j ,...,1:=是N 维向量的数据集合,m 是其均值向量:有了特征向量集合,任何数据x 可以投影到特征空间(以特征向量为基向量)中的表示:相反地,任何数据x 可以表示成如下的线性组合形式:如果用A 代表以特征向量为列向量构成的矩阵,则A T 定义了一个线性变换:kk sj T jj x j j j sj ju d d s C m x d d x s m 向量及满足下列条件的特征特征值求出其从大到小排列的协方差矩阵是:是:差别向量λ∑∑===-==1111⎩⎨⎧≠===kl kl u u k l k T l ,0,1,δTN T k k y y y y m x u y ),...,,(,)(21=-=∑=+=sk kk u y m x 1上述去相关的主分量分析方法可以用于降低数据的维数。
通过略去对应于若干较小特征值的特征向量来给y 降维。
例如,丢弃底下N-M 行得到N M ⨯的矩阵B ,并为简单起见假定均值m=0,则有:它只是被舍弃的特征向量所对应的特征值的和。
通常,特征值幅度差别很大,忽略一些较小的值不会引起很大的误差。
上述方法是图象数据压缩的数学基础之一,通常被称为Principal Component Analysis (PCA)或Karhunen-Loeve (K-L)变换。
K-L 变换的核心过程是计算特征值和特征向量,有很多不同的数值计算方法。
一种常采用的方法是根据如下的推导:由于通常s<<N ,这种方法将求高阶矩阵的特征向量转化为求较低阶矩阵的特征向量的过程在图象数据分析中是很实用的。