主成分分析原理的数学证明

主成分分析原理的数学证明


  主成分分析(Princle Componet Analysis, PCA)是一种经典的无监督方法,可以用来降低特征的维度,在稍微牺牲点性能的前提下减小运算量,提升计算效率.最近闲暇时间,看了一下主成分分析的数学证明,其中有一些部分搞的不是很清楚,翻了线性代数的教材和李航老师的《统计学习方法》,也参阅了一些博客的内容,基本把PCA的原理搞清楚了.做一个文字的记录,方便以后查阅快速回忆.

  问题为:假设有 m m m n n n维实数域的样本 x 1 , x 2 , . . . , x m x_1, x_2,...,x_m x1,x2,...,xm,其中 x i = ( x i 1 , x i 2 , . . . , x i n ) x_i=(x_{i1}, x_{i2},...,x_{in}) xi=(xi1,xi2,...,xin).PCA希望将样本的维度从 n n n维减少到 k ( k < n ) k(k < n) k(k<n)维,当然承受一定程度(尽可能小的程度)的信息损失.首先给出主成分分析的结论,再进行证明.

  1. m m m个样本沿着维度的方向0均值化后按行排成一个矩阵 X m , n X_{m,n} Xm,n并计算得到协方差矩阵 A = X T X A=X^TX A=XTX;
  2. 计算协方差矩阵 A A A n n n个特征值 λ 1 , λ 2 , . . . , λ n \lambda_1,\lambda_2,...,\lambda_n λ1,λ2,...,λn(可能有重复值)和对应的特征向量 u 1 , u 2 , . . . , u n u_1, u_2,...,u_n u1,u2,...,un;
  3. n n n个特征值按照从大到小的顺序进行排序,相应的将 n n n个特征向量也排序.
  4. 选前 k k k个特征向量,按列排列得到一个变换矩阵 T n , k T_{n,k} Tn,k,每个样本经过变换矩阵后得到降维后的样本(由 n n n维变为 k k k维).

  后面的证明主要就集中在对这个样本矩阵的协方差矩阵 X T X X^TX XTX来进行.这个矩阵有一些很好的性质提前写出来,下面的证明过程会用到.性质2的证明方法是构造法,性质1和3的证明都比较简单不再赘述,可以参考任意一本线性代数的教材.

性质1: X T X X^TX XTX是一个 n n n维实对称矩阵,其所有特征值非负.

性质2: X T X X^TX XTX一定有 n n n个线性无关的特征向量,即其一定能够对角化.

性质3: X T X X^TX XTX的属于不同特征值的特征向量两两正交,又其属于同一特征值的特征向量可以通过施密特正交化,再结合性质2可知,存在正交矩阵 Q Q Q可以将 X T X X^TX XTX对角化,即 Q − 1 X T X Q = d i a g ( X T X ) Q^{-1}X^TXQ=diag(X^TX) Q1XTXQ=diag(XTX),其中 d i a g ( X T X ) diag(X^TX) diag(XTX)为对角矩阵,对角线上的元素分别为与特征向量组成的矩阵 Q Q Q对应的特征值.

  下面给出PCA步骤的证明.

  主成分分析的目的在于放弃原来的 n n n维样本特征空间,另外找一个 k k k维的样本特征空间,并将原来的每个 n n n维的样本转换到这个维度更小的空间中来.转换的原则是:

  1. 新的 k k k维空间是一个正交空间,即 k k k个基是两两正交的.
  2. 在新的 k k k维空间中,样本的新坐标具有最大的方差.这里稍微解释一下,根据方差的定义,最大的方差意味着样本的整体分布更加分散,而不是都集中在某个很小的区域里.样本在空间里分布的越分散,越容易体现他们的差异性和各自的特点.

  具体来说就是:寻找 k k k个两两正交的单位方向向量 u u u,使得样本在这些方向上的投影方差是所有方向向量里分别是第一大的,第二大的,…,第k大的.

  怎么寻找这些方向向量 u u u呢?对于某一个任意的方向向量 u u u,由于之前对样本做过零均值的归一化操作,又偏置值为0的线性变换(相当于对向量进行绕原点的旋转)不改变样本的均值,故样本在该方向上投影后的均值仍然为0.将样本在变换前的空间内记做 x i x_i xi,在变换后的空间内记做 x i ′ x_{i}' xi.根据方差的定义,所有样本在变换后的空间内的平均方差为:

   V a r ( X ′ ) = 1 n ∑ i = 1 n ( x i ′ − E ( x ′ ) ) 2 = 1 n ∑ i = 1 n ∣ ∣ x i ′ ∣ ∣ 2 2 = 1 n ∑ i = 1 n ( x i , u ) 2 = 1 n u T X T X u , s . t . ∣ ∣ u ∣ ∣ = 1 Var(X')=\frac{1}{n}\sum_{i=1}^{n}(x_{i}'-E(x'))^2=\frac{1}{n}\sum_{i=1}^{n}||x_{i}'||_2^2=\frac{1}{n}\sum_{i=1}^{n}(x_i,u)^2=\frac{1}{n}u^TX^TXu, s.t.||u||=1 Var(X)=n1i=1n(xiE(x))2=n1i=1nxi22=n1i=1n(xi,u)2=n1uTXTXu,s.t.u=1

  上式等价于,寻找方向向量 u u u使得 f ( u ) = u T X T X u , s . t . ∣ ∣ u ∣ ∣ = 1 f(u) = u^TX^TXu, s.t.||u||=1 f(u)=uTXTXu,s.t.u=1取得最大值.假设样本的各个维度的特征相互独立,我们将自变量 u = ( u 1 , u 2 , . . . , u n ) T u=(u_1,u_2,...,u_n)^T u=(u1,u2,...,un)T看做一个含有 n n n个独立变量的多元变量,那么这个问题就显然是一个多元函数的条件极值问题,可以通过求解拉格朗日函数的极大值来解决:

   L ( u ) = u T X T X u + λ ( 1 − u T u ) L(u)=u^TX^TXu+\lambda(1-u^Tu) L(u)=uTXTXu+λ(1uTu)

根据多元微分学的结论可知,上述拉格朗日函数在自变量 u 0 = ( u 10 , u 20 , . . . , u n 0 ) T u_0=(u_{10},u_{20},...,u_{n0})^T u0=(u10,u20,...,un0)T取得极大值的充要条件是在该点一阶偏导数全部等于零且Hessian矩阵半负定.即:

   ∂ L ∂ u 1 ∣ u = u 0 = 0 , ∂ L ∂ u 2 ∣ u = u 0 = 0 , . . . , ∂ L ∂ u n ∣ u = u 0 = 0 \frac{\partial{L}}{\partial{u_1}}|_{u=u_0}=0, \frac{\partial{L}}{\partial{u_2}}|_{u=u_0}=0 ,...,\frac{\partial{L}}{\partial{u_n}}|_{u=u_0}=0 u1Lu=u0=0,u2Lu=u0=0,...,unLu=u0=0

   H e s s i a n ( L ) = ∣ ∂ 2 L ∂ u 1 2 ∂ 2 L ∂ u 1 ∂ u 2 . . . ∂ 2 L ∂ u 1 ∂ u n ∂ 2 L ∂ u 2 ∂ u 1 ∂ 2 L ∂ u 2 2 . . . ∂ 2 L ∂ u 2 ∂ u n . . . . . . . . . . . . ∂ 2 L ∂ u n ∂ u 1 ∂ 2 L ∂ u n ∂ u 2 . . . ∂ 2 L ∂ u n 2 ∣ u = u 0 Hessian(L)={\left|{\begin{array}{cccc}\frac{\partial^2L}{\partial{u_1}^2}&\frac{\partial^2L}{\partial{u_1}\partial{u_2}}&...&\frac{\partial^2L}{\partial{u_1}\partial{u_n}}\\\frac{\partial^2L}{\partial{u_2}\partial{u_1}}&\frac{\partial^2L}{\partial{u_2}^2}&...&\frac{\partial^2L}{\partial{u_2}\partial{u_n}}\\...&...&...&...\\\frac{\partial^2L}{\partial{u_n}\partial{u_1}}&\frac{\partial^2L}{\partial{u_n}\partial{u_2}}&...&\frac{\partial^2L}{\partial{u_n}^2}\end{array}}\right|}_{u=u_0} Hessian(L)=u122Lu2u12L...unu12Lu1u22Lu222L...unu22L............u1un2Lu2un2L...un22Lu=u0负定

分别求 L ( u ) L(u) L(u)的一阶导数和Hessian矩阵,结果为:

   ∂ L ∂ u = 2 ( X T X u − λ u ) \frac{\partial{L}}{\partial{u}}=2(X^TXu-\lambda u) uL=2(XTXuλu)

   H e s s i a n ( L ) = 2 ( X T X − λ I ) Hessian(L)=2(X^TX-\lambda I) Hessian(L)=2(XTXλI)

  上述两个式子看起来很简单,不过要求这个结果没点向量函数的导数知识还是比较难的,这里有两个路子可供大家选择.第一种办法是去看一下标量函数对向量变量的求导(算一阶偏导)和向量函数对向量变量的求导(算Hessian矩阵).第二种办法比较直观但是也比较麻烦,可以把 X T X = ∣ a 11 a 12 . . . a 1 n a 21 a 22 . . . a 2 n . . . . . . . . . . . . a n 1 a n 2 . . . a n n ∣ X^TX={\left|{\begin{array}{cccc}a_{11}&a_{12}&...&a_{1n}\\a_{21}&a_{22}&...&a_{2n}\\...&...&...&...\\a_{n1}&a_{n2}&...&a_{nn}\end{array}}\right|} XTX=a11a21...an1a12a22...an2............a1na2n...ann代入展开,再利用微积分的求偏导的方法去求就可以了.

  一阶导数等于0得到: X T X u = λ u X^TXu=\lambda u XTXu=λu,即 λ \lambda λ X T X X^TX XTX的特征值, u u u取其对应的特征向量 u 0 u_0 u0即可.这里我们假设先让 λ \lambda λ取所有特征值里最大的那个,来看看此时得到的 u 0 u_0 u0是否能使得拉格朗日函数取得最大值.

根据 X T X X^TX XTX的性质3, 此时Hessian矩阵:

H e s s i a n ( L ) = X T X − λ I = Q − 1 d i a g ( X T X ) Q − λ m a x Q − 1 I Q = Q − 1 ( d i a g ( X T X ) − λ m a x I ) Q = Q − 1 ∣ λ 1 − λ m a x 0 . . . 0 0 λ 2 − λ m a x . . . 0 . . . . . . . . . . . . 0 0 . . . λ n − λ m a x ∣ Q Hessian(L) = X^TX-\lambda I=Q^{-1}diag(X^TX)Q -\lambda_{max} Q^{-1}IQ\\=Q^{-1}(diag(X^TX)-\lambda_{max} I)Q=Q^{-1}{{\left|{\begin{array}{cccc}\lambda_{1}-\lambda_{max}&0&...&0\\0&\lambda_{2}-\lambda_{max}&...&0\\...&...&...&...\\0&0&...&\lambda_{n}-\lambda_{max}\end{array}}\right|}}Q Hessian(L)=XTXλI=Q1diag(XTX)QλmaxQ1IQ=Q1(diag(XTX)λmaxI)Q=Q1λ1λmax0...00λ2λmax...0............00...λnλmaxQ

则Hessian矩阵一定相合于标准型 ∣ λ 1 − λ m a x 0 . . . 0 0 λ 2 − λ m a x . . . 0 . . . . . . . . . . . . 0 0 . . . λ n − λ m a x ∣ {{\left|{\begin{array}{cccc}\lambda_{1}-\lambda_{max}&0&...&0\\0&\lambda_{2}-\lambda_{max}&...&0\\...&...&...&...\\0&0&...&\lambda_{n}-\lambda_{max}\end{array}}\right|}} λ1λmax0...00λ2λmax...0............00...λnλmax,由于 λ m a x \lambda_{max} λmax是所有特征值中最大的,则Hessian矩阵一定是半负定的,则此时拉格朗日函数一定取得极大值.至此就得到了一个合适的方向向量,即最大特征值对应的特征向量,也就是所谓的第一主成分.对于剩下的主成分也是类似来求,只不过按照特征值从大到小的顺序遍历就行了.

  这里还有一个小问题交代一下,通过上述分析我们知道,对于最大的特征值可以得到Hessian矩阵相合于一个半负定的矩阵.但是当取第二大的特征值时,相合矩阵的第一行第一列值就为正了,此时标准型是不定的.那怎么解释这个问题呢?我的想法是由于属于不同特征值的特征向量是相互正交的(属于统一特征值的特征向量也可以正交化),所以取第二大的特征值时,虽然标准型的第一个数字不为0或负数,但是此时特征向量向第一个特征值对应的特征向量的投影分量等于0,所以二次型的计算结果中,系数虽然不为0,但是相当于向量的等效模为0,所以可以忽略第一个特征值的部分.仅仅看第二大特征值之后的部分,该二次型还是半负定的.其余特征值情况同理.暂时没想到这个方法的不成立之处,也没想到其他更好的证明方法,希望能得到更多的讨论.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值