PCA为什么要用协方差矩阵?

       PCA方法是数据降维的重要手段之一,方法比较简单,就是将样本数据求一个维度的协方差矩阵,然后求解这个协方差矩阵的特征值和对应的特征向量,将这些特征向量按照对应的特征值从大到小排列,组成新的矩阵,被称为特征向量矩阵,也可以称为投影矩阵,然后用改投影矩阵将样本数据转换。取前K维数据即可,实现对数据的降维。

       假设样本数据有r维(组成一个r维向量),共有n个样本。组成r*n矩阵A,矩阵每一列是一个样本,行是各个不同的特征维度。求解协方差矩阵S=AAT(最好先将A进行每个维度上的数据进行中心化A→C再求协方差矩阵S=CCT),S是r*r的方阵,用X(j)表示样本数据的第j维数据,则求解协方差矩阵




其中表示两个维度之间的协方差

很显然S是个对称矩阵,求解S的特征向量以及对应的特征值,按照特征值大小依次排列特征向量,将这些特征向量(列向量)组成一个矩阵,被称为转换矩阵或者投影矩阵。如果只取前K列特征向量组成的矩阵P,再把原样本数据用投影矩阵转换到新的坐标空间A’=PTA,可以实现数据的降维。

 

△为什么要用协方差矩阵来做呢?

       虽然PCA降维方法我很早就知道,但是最近实验室老师让我看稀疏PCA方法解决他的三维人体建模的问题。我心里默默地在想,样本数据固定了,以上的S不就是定了吗?为神马还出来一个稀疏PCA?于是我就抱着理解原理本质的心理来重新看PCA,然后就发现一个关键的问题:PCA为什么要用协方差矩阵的特征向量矩阵来做投影矩阵呢?为神马啊为神马?想不通……这样做出来的投影矩阵一定能保证样本数据投影到另一个坐标系后,前几个坐标的值保证是最大特征?然后我找啊找,终于找到一个资料,尼玛……终于拨云见日啊~现在我用自己的理解用浅显易懂的描述来说明为嘛用协方差矩阵?!


在说PCA的协方差矩阵之前我们先来说说投影矩阵。


1. 关于投影矩阵/变换矩阵

       一个向量经过变换矩阵,只要变化矩阵的基分量之间是相互线性无关的就可以实现转换,什么叫线性无关呢?想象一下三维空间向量(a, b, c),每个基向量不共线就算是线性无关,当然还有一个条件,就是不能共面啊(不然其中一个基向量就可以用其他基向量来组合表示,他们组成的向量矩阵就不是满秩,不是3只有2)。扩展到N维空间就是N个基向量,每个基向量都不能由其他基向量线性组合得到。这种线性无关基向量组成的变换矩阵肯定是可逆的(方阵N*N的秩为N),可逆就可以实现两个坐标系的相互转换啊~


坐标转换1:

V1V2...Vn(均为列向量)是一组标准正交基,x1 x2..... xn是在该基下的一个坐标。则V1*x1+V2*x2+…+Vn*x={y1 y2......yn}T为该点在新基下的坐标。

其中这组新基为{1, 0, ..., 0}T,{0, 1, ..., 0}T…{0, 0, ..., 1}T


坐标转换2:

       若想将 {y1 y2......yn}T转换为在某个基V1V2...Vn下的坐标,只需左乘{V1V2...Vn}-1即可。

       一个样本在投影矩阵P的作用下,转换到另一个坐标空间,相当于求得该样本向量在P不同列向量的投影坐标。

       一个坐标系转换到另一个坐标系,转换矩阵其实不需要标准化(向量单位化,即向量的模为1),也不需要正交基的矩阵(两两向量正交,即相乘为0),只要满足上述“线性无关”的要求,数据就可以从一个度量空间转换到另一个空间,而且可以相互转换A'=P*A,A=P-1A',转换矩阵为P,而A和A'是两个空间中的不同表示。只是正交基和标准基会有一些好处:

  • 如果P是标准化矩阵,由于P-1P=I(恒等式),PTP=I(标准化矩阵性质),就会有PT=P-1,求解坐标转换速度更快,因为求转置矩阵比求逆矩阵快很多。
  • 如果P是正交矩阵,基向量两两正交,说明两个向量相关性很小,相当于数据在这两个维度上的相关性很小。线性无关不等于不相关,一个基向量在另一个基向量上有投影值,说明
  • 更进一步,标准正交矩阵更好,结合了以上两个优点,所以PCA求出来的特征向量矩阵是标准正交矩阵是一个大大大好的东西。

 

2. 协方差矩阵:

       【我们希望去除的信息:

       1. 噪声:我们常说“噪音污染”,意思就是“噪声”干扰我们想听到的真正声音。同样,假设样本中某个主要的维度A,它能代表原始数据,是“我们真正想听到的东西”,它本身含有的“能量”(即该维度的方差),本来应该是很大的,但由于它与其他维度有那么一些千丝万缕的相关性,受到这些个相关维度的干扰,它的能量被削弱了,我们就希望通过PCA处理后,使维度A与其他维度的相关性尽可能减弱,进而恢复维度A应有的能量,让我们“听的更清楚”! 

       2. 冗余:冗余也就是多余的意思,就是有它没它都一样,放着就是占地方。同样,假如样本中有些个维度,在所有的样本上变化不明显(极端情况:在所有的样本中该维度都等于同一个数),也就是说该维度上的方差接近于零,那么显然它对区分不同的样本丝毫起不到任何作用,这个维度即是冗余的,有它没它一个样。

       降维的目的就是“降噪”和“去冗余”。“降噪”的目的就是使保留下来的维度间的相关性尽可能小,而“去冗余”的目的就是使保留下来的维度含有的“能量”即方差尽可能大。那首先的首先,我们得需要知道各维度间的相关性以及个维度上的方差啊!那有什么数据结构能同时表现不同维度间的相关性以及各个维度上的方差呢?自然是协方差矩阵!

       协方差矩阵度量的是维度与维度之间的关系,而非样本与样本之间。协方差矩阵的主对角线上的元素是各个维度上的方差(即能量),其他元素是两两维度间的协方差(即相关性)。我们要的东西协方差矩阵都有了,先来看“降噪”,让保留下的不同维度间的相关性尽可能小,也就是说让协方差矩阵中非对角线元素都基本为零。达到这个目的的方式自然不用说,线代中奖的很明确——矩阵对角化。】

       以上就是为什么要用协方差矩阵的原因!

【而对角化后得到的矩阵,其对角线上是协方差矩阵的特征值,它还有两个身份:

  • 首先,它还是各个维度上的新方差;
  • 其次,它是各个维度本身应该拥有的能量(能量的概念伴随特征值而来)。
这也就是我们为何在前面称“方差”为“能量”的原因。也许第二点可能存在疑问,但我们应该注意到这个事实,通过对角化后,剩余维度间的相关性已经减到最弱,已经不会再受“噪声”的影响了,故此时拥有的能量应该比先前大了。

看完了“降噪”,我们的“去冗余”还没完呢。对角化后的协方差矩阵,对角线上较小的新方差对应的就是那些该去掉的维度。所以我们只取那些含有较大能量(特征值)的维度,其余的就舍掉即可。


       那为什么协方差矩阵求解出来的特征矩阵就能做到以上这点呢?且说我们的目的是:协方差矩阵“对角化”,不如说是我们需要找到一个转换矩阵,使得新的协方差矩阵能够尽量的对角化,即找到一个转换矩阵P使得A→A'=PA,使得新的协方差

       S=(A')(A') T = (PA) (PA)T= (PA)(ATPT) = P(AAT)PT= Λ (Λ为对角矩阵)

       下面就是数学求解的问题。

 

3. PCA与SVD关系

       如果P是一个标准正交矩阵,以上的P(AAT)PT=Λ可以转化为:P-1P(AAT)PTP= P-1ΛP 即S=AAT= P-1ΛP看出什么了吗?看出什么了吗?这就是矩阵SVD分解啊……

 

SVD

a)方阵的分解

      Sr*r方阵,则存在以下矩阵分解

其中U的列为S的特征向量,Λ为对角矩阵,其中对角线上的值为S的特征值,按从大到小排列:

 

      如果S是对称方阵,则存在

      其中U的列为矩阵S单位正交特征向量仍表示对角矩阵,其中对角线上的值为S的特征值,按从大到小排列。最后,QT=Q-1,因为正交矩阵的逆等于其转置

 

b)奇异值分解

      上面讨论了方阵的分解,但是在LSA中,我们是要对Term-Document矩阵进行分解,很显然这个矩阵不是方阵。这时需要奇异值分解对Term-Document进行分解。奇异值分解的推理使用到了上面所讲的方阵的分解。

      假设Am*n矩阵,Um*m矩阵,其中U的列为AAT的正交特征向量,Vn*n矩阵,其中V的列为ATA的正交特征向量,再假设rA矩阵的秩,则存在奇异值分解:

A= UΣVT

其中AATATA的特征值相同,为λ1,λ2, …, λr

Σm*n,其中,其余位置数值为0Σii的值按大小降序排列。以下是Σ的完整数学定义:

       σi称为矩阵A的奇异值。

      A乘以其转置矩阵AT得:AAT=(UΣVT)(VΣUT)=UΣ2UT正是在上面讨论过的对称矩阵的分解。

      奇异值分解的图形表示:


从图中可以看到Σ虽然为m*n矩阵,但从第n+1行到m行全为零,因此可以表示成n*n矩阵,又由于右式为矩阵相乘,因此U可以表示为m*n矩阵,VT可以表示为n*n矩阵。

 

       回归到PCA,需要找到一个转换矩阵P使得P(AAT)PT=Λ也就是对S=AAT= P-1ΛP进行对称矩阵的分解,由以上知识得:P-1为矩阵S的标准正交特征向量的逆矩阵,所以先求解AAT的标准正交特征向量(列向量为特征向量),求逆只要求转置即可。

       以上就是为什么要用协方差矩阵以及它对应的特征向量原理。end!

 

参考资料:

1. http://wenku.baidu.com/link?url=Q28-Q3AuNGAtO6Rq3UxvkZ3AlvRnZaPChnKDoZxfmUKa09HHPeVI4rVpIBr4S7u3DtxPLqMyoWaa-N5K-7FIB0cyqQuufXEQ1ghBQo2-lLS

2. http://blog.csdn.net/wangran51/article/details/7408414

3. http://www.cnblogs.com/tclikang/archive/2012/12/05/2803506.html

4. http://blog.csdn.net/sunuechao/article/details/12717771

5. http://m.blog.csdn.net/blog/Lu597203933/45898411

没有更多推荐了,返回首页