关于PCA的总结

最近学习了主成份分析(Principal Component Analysis)这个经典方法。学习的材料是A Tutorial on Principal Component Analysis(by Jonathon Shlens)。

学习完之后,感觉这篇材料关于PCA写得非常简洁明了,也很适合自学。现在做一下总结。


我们首先来看,对于如图所示的一个弹簧振子模型,我们并不知道真正的x、y、z三个坐标轴的位置,于是在系统附近的三个位置有三个相机来记录弹簧振子的位置。但是我们并不知道这三个相机记录下的位置哪一个能更好地描述振子的运动。同时,更关键的是,我们想通过三组记录数据来求出真正的振子运动方向,即x方向。

抽象地来说,我们用一个六维向量来表示记录下的数据:


PCA的目标就是找到一组最有意义的基来更好地表示数据。即寻找变换矩阵P,令 为变换之后的数据,使得Y更有意义。(注:这里我们引入了线性的假设,即我们所采用的变换是线性的。)那么“更有意义”是什么含义呢?应该如何衡量呢?又应该如何选择矩阵P呢?要解答这些问题,我们就必须知道,对于变换后的Y应该满足哪些性质呢?我们需要引入更多的假设。

首先,关于噪声。在弹簧振子模型中,我们假设测量过程中的噪声是很少的,否则任何测量都变得没有意义,测量的结果无法提供我们需要的信息。我们用信噪比来表示测量的准确度,信噪比越大,测量越准确。

分子分母分别是信号和噪声的方差。

有了这个假设,我们再来看振子模型。因为振子是沿直线运动的,因此干扰振子偏离该方向的因素就是噪声。那么记录下的数据表明振子运动方向越接近直线,则测量的信噪比越大,测量的准确度就越高。所以,信噪比(就是测量方差)最大的方向,就是我们想要寻找的方向。因此最大化方差就对应于找到初始基的合适变换。

另一方面,我们还可以从另一个角度来分析数据,即冗余性。当数据冗余性很大时,我们没有必要记录下所有的变量,因为我们通过其他变量很好地预测某个变量值。这也是降低维度背后的中心思想。

那么我们如何量化表示这些概念并且一般化应用到高维数据呢?这就需要方差矩阵

 协方差表示两个变量的线性相关程度:大的正值表明数据是正相关,大的负值表明数据是负相关;方差的绝对值表示数据的冗余性:绝对值越大,数据冗余度越大。

数据X的协方差矩阵定义为:

在方差矩阵中,对角线元素表示某种测量类型的方差,值越大,我们对这种结构就越感兴趣;非对角线元素表示两种测量方式的协方差,值越大,代表数据的冗余性越大。

 

现在,假设我们已经获得了原数据的协方差矩阵,基于以上的假设和分析,我们的目标可以总结为两个:一是去除数据冗余性,由协方差来衡量;二是最大化信号,由方差来衡量。那么对于变换后的数据Y的协方差矩阵,我们要求它有什么特征和性质呢?

一:非对角线元素为零,即去除数据的相关性,所以Cy为对角矩阵;二,Y的每一个维度应该按照方差大小来排序。

现在,PCA问题实际上就是给定数据X,X是一个mxn的矩阵。我们寻找一个正交矩阵P,对于 ,使得Y的协方差矩阵 为对角矩阵。从已知的X(首先将X零均值化)出发,怎么得到Y的协方差矩阵Cy 呢?


要想Cy为对角阵,我们该怎样利用Cx和选择P呢?

类比矩阵特征值分解的方法和思想,我们对Cx进行特征值分解,使得 ,,满足Q是正交阵, 是对角阵。同时,我们令 ,则我们有


Cy最终被转化为对角阵。其中Cx 的特征向量即矩阵Q的列称为X的主成份,所以P的行向量就是X的主成份。Cy的第i个对角线元素值是X的方差沿着pi(pi 是P的行向量)方向的投影。


最后,将推导PCA解法时用到的假设条件做一总结:

一:线性性。线性性将问题等价地转化为在基变换的框架下去解决。

二:大方差意味着重要的结构。这个假设同时包含了数据应该是具有高的信噪比。因此具有大的方差的主成份就是我们感兴趣的结构,而方差小的成份就是噪声。要注意,这是一个很强的假设,有时甚至是一个错误的假设。

三:主成份是正交的。正是这一假设才保证了PCA问题可以应用矩阵分解技术来求解。

 

除了以上介绍的特征值分解方法来求解PCA问题,还有一种更普遍的解法,SVD分解。就暂时不在这篇文章中介绍了,以后会继续介绍。

总得来看,这篇文章有以下三个优点,值得我们在写文章时借鉴:

一:引出问题的物理模型非常形象易懂;

二:对于方差和协方差的解释非常直白;

三:对于PCA方法的假设的总结很全面,提醒我们在理解问题时要注意审视问题和求解过程中隐含的假设和限制。



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值