《PCA的数学原理》读书笔记

来源:互联网 发布:windows病毒防护 编辑:程序博客网 时间:2024/05/27 00:44

《PCA的数学原理》读书笔记

最近读了张洋的《 PCA的数学原理 》的文章,受益匪浅,但是文章中也有一些地方不甚明了,本着刨根问底的态度,在此写下自己的理解和阅读之中所遇到的困惑及明悟。

作为一只数学狗,个人还是比较喜欢规范化的文字。首先定义一些符号:假设我们有m个样本数据,每个样本都是一个n维向量,那么我们的样本矩阵就是一个n×m的矩阵Anm,即以列为样本,行为维度。接着我们定义BA的协方差矩阵,那么B为一个n维方阵,即Bnn,显然,B是一个实对称矩阵,学过高等代数(线性代数)的人都知道这是个很好的性质。最后我们定义B的特征值和特征向量为λiVi,其中i[1,n]。简单强调下,λiVi成对才有意义。

OK!符号已经定义完了额!接下来先抛出几个问题。

那么如何选择这个方向(或者说基)才能尽量保留最多的原始信息呢?一种直观的看法是:希望投影后的投影值尽可能分散。

  1. 方差确实是表示分散程度的描述,但是方差大就一定是在这个维度上投影得最好吗,会不会出现方差次之的情况更能区分好投影后的数据呢?这个在文中没有说明,只是简单地说,这是一种直观的看法,这个很难说服读者。
  2. 文中没有解释上下文中,是如何最大方差和特征值、特征向量联系起来的,为什么特征值最大的k个特征向量就是保留信息最多的k个基?
  3. Rn空间中,为什么特征值最大的特征向量就是投影后方差最大的那个?

首先,Problem 1。博主也还尚未完全理解,在此先不讨论,以后再填上这个坑。

再者,Problem 2。博主还!是!不!会!!
呵呵,开玩笑的,博主还是good good study, day day up的好学生来着。下面说说为什么求协方差矩阵B的特征值和特征向量就能找到方差最大的方向。
这是因为A在投影到Vi后的方差,就是lambdai
下面给出boring的数学证明。
由于B是A的协方差矩阵,因而有:

B=AAT

又因为λiViB的特征值和特征向量,因而有:
AATVi=BVi=λiVi

设A投影在Vi上为Xi,即ATVi=Xi,显然,Xi就是降维后的其中一种一维投影,它的方差就是1mXTiXi。那么有:
1mXTiXi=1mVTiAATVi=1mVTiλiVi=λim

所以,每个特征值λi都是A在相应的Vi上投影后的方差。因而,投影后的方差与特征值之间的内在联系就已经建立了,其实就是差了m倍,但本质一样。

最后,Problem 3。由于B是实对称矩阵,所以存在正定矩阵P使得T=PTBP是对角矩阵,也即B可对角化。又,我们要证明,λ1(假设λ1是最大的λ)对应的V1是最好的投影方向,即对于VRnmaxVTAATV的最优解就是V1。下面给出证明。
因为存在正定矩阵P,使得PTBP是对角矩阵,V=PW,所以有:

VTAATV=WTPTAATPW=WTPTBPW=WTλ1λ2λnW=λ1W21++λnW2nλ1(W21++W2n)=λ11=λ1

所以maxVTAATV=λ1
证毕。

1 0