奇异值分解与主成分分析_第1页
奇异值分解与主成分分析_第2页
奇异值分解与主成分分析_第3页
奇异值分解与主成分分析_第4页
奇异值分解与主成分分析_第5页
已阅读5页,还剩3页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

数值实验03:奇异值分解与主成分分析选作问题(研究性的)6、假设数据源是一系列的图像,每幅图像都是一个矩阵。分别用经典的主成分分析方法和奇异值分解方法计算特征脸。注意数据的中心化与归一化处理的影响。(1)奇异值分解:是一个能够适用于任意矩阵的一种分解方法:U为M*M方阵⑴里面的正交向量称为左奇异向量),另是一个M*N的矩阵(除了对角线的元素都是0,对角线上的元素称为奇异值),『是一个N*N的方(V里面正交的向量称为右奇异向量)。我们将一个矩阵A的转置乘以A,并对ATA求特征值(AtA)Vi=A.,v,则V就为右奇异向量,且奇异值6=州,左奇异值匕二*b就为奇异值,u就为奇异向量。奇异值b跟特征值类似,在矩阵工中也是从大到小排列,而且b的减少特别的快,在很多情况下,前10%甚至1%的奇异值的和就占了全部的奇异值之和的99%以上了。也就是说,我们也可以用前r大的奇异值来近似描述矩阵,部分奇异值分解:(r是一个远小于m、n的数)给定一幅M*N大小的图像,将它表示成M*N*1维向董,向董中元素为像素点的灰度,按行存储,则如下公式分别表示第i张图片和n张图片的平均值:兀1兀1X,=小2X七Xi2•n/=i•••令M*N*n矩阵X为:X=Xt-X,x2-X9...,Xn_X■i即中心化,将坐标原点移动到平均值位置。设0=XXr,则Q是一个MN*MN矩阵:xJ二丸+工gj&其中6是非零特征值对应的特征向量,对于M*N图像,e1,e2,..,en是M*N*1维相互正交的向量。尺度酬是X,在空间中的坐标。为了降维,可以对特征值设定阖值或按照其他准则,寻找协方差矩阵Q中前k个特征向量。Q为M*N*M*N,通常很庞大。考虑矩阵P=XtXQ的大小为M*N*M*N而P的大小为n*n,N为训练样本图像数量,通常n«M*N设e是矩阵P的特征值入对应的特征向量,则有:Pe=XeXTXe=Xe

XXTXe=XXeQ(Xe)=A(Xe;所以X*e是矩阵Q的特征值入对应的特征向量。这就是用求特征值分解的方法。对Q进行奇异值分解Own*ww=U.i•*・nV«w•wU就是OCT的特征向量,V就是Q9的特征向量,W中奇异值的平方就是QQ「和QtQ的特征值。(2)主成分分析(PCA)的原理就是将一个高维向量《通过一个特殊的特征向量矩阵U,投影到一个低维的向量空间中,表征为一个低维向量兄并且仅仅损失了一些次要信息。也就是说,通过低维表征的向量和特征向量矩阵,可以基本重构出所对应的原始高维向量。在人脸识别中,特征向量矩阵U称为特征脸空间,因此其中的特征向量^进行量化后可以看出人脸轮廓,在下而的实验中可以看出。设有n个人脸训练样本,每个样本由其像素灰度值组成一个向量次则样本图像的像素点数即为^的维数,由向量构成的训练样本集为-,%n]o该样本集的平均向量为:X二_二平均向量又叫平均脸。样本集的协方差矩阵为:求出协方差矩阵的特征向量u,和对应的特征值Ai,这些特征向量组成的矩阵U就是人脸空间的正交基底,用它们的线性组合可以重构出样本中任意的人脸图像。并且图像信息集中在特征值大的特征向辇中,即使丢弃特征值小的向邀也不会影响图像质量。将协方差矩阵的特征值按从大到小顺序:久】----兄小一由大于入d的入对应的特征向量构成主成分,主成分构成的变换矩阵为:

这样每一幅人脸图像都可以投影到〃二(5,"2,…,5)构成的特征脸子空间中。MATLAB实践:选取16张人脸图像作为数据源,大小为80X80(这里的人脸图像要求大小相同,人眼部位尽可能对齐),把图像存储为[80X80,16]的矩阵A,每列表示一张图像,每行代表同一个位置的像素,因此一共有80X80个维度。中心化时各自减去每个维度的均值,由于图像数据的量纲一样,所以不需要归一化。16张人脸为:(a)对X用经典的主成分分析法计算特征脸,取前15个对应主成分特征脸:

iR=inean(y,2);Irain_nu».ber=sise2):A=[]:fori=l:Iraui_nuniber;tenip=double(y(:,i))-]n;A=[Atemp]:end575859GO616263645859GO616263646567迪697071T2•3[VD]=eig(L):L.eig_vec=[]:fori=l:size(V,2):也D(i,i)>l)L.,eig..vec=[L.eig_veeV(:,i)]:endendEigenfaces-A*L_eig_vec;□fori=l:15exg;en.£aces=reshape(Eigenfaces[SO,80]):figure(i):imshov(]iiat2gray(eigen*faces?));|endMean=reshape(%80,80):imshow(mat2gray(Mean?));74•5通常情况下MN»P的,而矩阵非零特征值的个数为min{MN-1,P-1}t所以在实现中使用维数少的P*P矩阵来代替理论上的协方差矩阵(MN*MN),减少计算。接着我们根据PCA算法的理论对得到的特征值进行排序,并舍弃一部分特征值(所占能董少,即特征值小的部分)在实现中我们设定的阈值为1,保留特征值大于1的,小于1的将被舍弃。由此我们再求得协方差矩阵的特征向量,并且此特征向量就是所谓的“特征脸”。平均脸特征脸特征脸特征脸平均脸特征脸特征脸特征脸特征脸特征脸特征脸特征脸特征脸特征脸特征脸特征脸(b)对X用奇异值方法计算特征脸,取前15个对应主成分特征脸:—jn.=nean(y,2);_Irain_number=SL2e(yj2):_A=[J;—T)fori=l:Irain.nwuber:_temp=double(y(:?1))-jn;A=[Ateiip];end_[eu>ed,ev]=svd(Aj0):Ked=diag(ed)"2:59_L_eig_veveC=Hfori=l:size(ev,2)62―if<ed(i,i)>l)L..ei8..vec=[L.eig.vecev(:,i)];end—end—E1genfaces=A*L_e1g.vec:—Ifori=l:15—eigenfaces=reshape(Eigenfaces(:,i)」[80A80]);figure(1):ljmshov(n.at2gray(eigenfaces')):70—end.71——Mean=reshape(叫80,80):iins-hovmat2gray(Mean?)):74采用svd分解来得到特征值和特征向量。平均脸特征脸特征脸特征脸特征脸特征脸特征脸特征脸特征脸特征脸特征脸特征脸由于SVD与PCA得到的特征向量可能符号相反,所以特征脸不同。7、奇异值分解与主成分分析是线性的降维方法。研究非线性的方法如LLE,并应用于适当选择的数据进行计算。分析和研究LLE与PCA的差别。答.□.(1)LLE分析:LLE(局部线性嵌入)方法是流形学习的一种算法。流形学习,它是用非线性方法去发现高维数据潜在的低维流形,然后在低维流形坐标上展示出这种流形结构。总之,流形学习是把一纽高维空间中的数据在低维空间中重新展示,置终达到降维的目的。假设*={血,…,叫},兀叶,ie(1,…,"}是原始高维空间的N个样本点,通过流行学习,发现嵌入在高维空间中的低维流形,Y=%•••,yn}>%eRd,ie(1,...,N}fd«DLLE是一种局部优化算法,其基本思想是:认为在局部意义下,数据的结构是线性的,因此在局部区域内数据点兀可以用其近邻点亏的线性组合工^Wk来近似表示,即这样在数据点和其近邻点之间就构适了一个重构权由此重构权组成的权向量恰好保持了高维数据的局部线性结构,在低维空间中也保持这种局部的线性结构,即在低维空间中有%门工目。因为局部区域内%是近似地由%和%线性表示出来的,因此会有误差存在,此误差尽管不能消除,但可以使其达到最小,故引入误差函数:min"*)=工二X,\、其限制条件为:1)若%不在%的邻域内,则虬=°;2)若%在人的邻域内,则也严,且满足工:齐(2)LLE算法的实现在MATLAB实现中,我们将LLE的实现用下述函数表示:1[Afunction[Y]=Lle(X,K,d)其中X为我们的数据集,它是一个D*N的矩阵,D为采样点的维度,N为采样点的个数:K为近邻点的个数,d是我们想要降到的维度,最终输出为降维后新的d*N矩阵。D步一利用欧式距离%电S求得每个数据点的K个紧邻点步骤二:根据第一步求取的紧邻点对数据线性重构并计算重构权值矩阵W。将误差函数化简为:min)=-二工:」n〃-工:/川『=£:=枢\吃旺-咧=工:JSw—WT\=1利用拉格朗日乘子法在乙丹〃-“±&-±的约束条件下,求的最小值,即:对上式W求导并令其为0,则可推出:其中舄eRg=a-Xijy-心,比二((期2叫)丁,片为k维全1列向量。MATLAB对重构权值矩阵W的实现如下:if(K>D)tol=le-3;elsetol=0;end¥=zeros(KfN):□forii=l:Fz=X(:,neighborhood(:,ii))-repniat(K(:^ii),1,K):C=z?*z:C=C+eye(K,K)*tol*trace(C):W(:5ii)=C\ones(K51);w(:ii)=w(:.ill/sum(Y(:Jill);end;步骤三:求低维嵌入Y由于重构权向量%所描述的流形的局部几何结构在降维后也是保持不变的。因此,利用上步求得的%在低维空间内重构,使下面局部重建损失函数最小:min仅=MLI”-亿s『=S".IK-妙『=trAYU—0)(Z—"U=tNYMYH为了限定低维数据均匀分布和避免产生退化解,对Y加了两个约束条件:工:/“范二加二1利用拉格朗日乘子,并结合约束条件得:z(r)=YMYT+^YYt-ND上式对Y求导得:W二兄〃,所以(〃一=0,则有1八-271=0,M最小的d个(2〜d+1)非零特征值所对应特征向量为逅,5,・・EZ,则*|",•…即为所求的低维嵌入(最小特征值为0时不能反映原始数据的特征,所以必须舍弃)sparse(1:1:N,ones(1,N)川』』4*K*N):□forii=l!Nw=V(:,ii);jj=neighborhood(:jii):]B(iijjjJ-w*:B(jjjM(jjjjj)二爪(儿jj)F*w':end:options.disp=0:options.isreal=l:options.issyjii=1;[Yjei?envals]=eigs(M,d+b0,options):Y=Y(;,2;d+l),*sqrt(Ji);(3)比较PCA与LLE的区别:(a)从降维方法来看:降维方法通常分为线性降维和非线性降维。线性降维是假设高维数据位于全局线性的结构中,使得降维后的低维数据能保持数据点的线性关系,PCA是常用的线性降维方法;但当数据是非线性时,线性降维方法将破坏原始数据间的拓扑结构,无法探索数据间的内部规律,因此出现了揭示数据间非线性性质的非线性降维方法,流形学习是非线性降维方法的一个重要分支。总之,PCA的特点是全局线性;LLE特点是局部线性、全局非线性。(b)从适用性来看:对于非线性的高维数据,LLE算法能展现其流形分布,而PCA可能会发生明显扭曲而失效。PCA可能会使流形中相隔很远的点映射到低维空间后变得相近,这样便很难揭示其流形分布;而LLE能保持原始数据柘扑结构不变。由于PCA的目的是寻找最小均方意义下最能够代表原始数据的投影方法(寻找最优方向),所以PCA对椭球状分布的样本集有很好的效果,学习所得的主方向就是椭球的主轴方向。而LLE适用于分布均匀并稠密的数据集的降维,而当数据集的分布稀疏时,数据点的关联性较弱,选择的k近邻容易造成信息选取方向的缺失,线性重构误差大。(c)从算法实现来看:PCA将方差的大小作为保持原始商维数据信息量多少标准,通过求解中心化和归一化后的

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论