PCA主成分分析

主成分分析PCA是一种降维技术,通过找到数据最大方差的方向(主成分)来压缩数据,同时保持数据集的主要特性。PCA通过最大化投影数据的方差或最小化投影误差来实现,其关键步骤包括数据预处理(如标准化)、协方差矩阵计算、特征值分解及选择最大特征值对应的特征向量作为主成分。PCA在数据压缩、可视化、特征提取等方面有广泛应用,通过保留最重要的主成分,可以降低数据复杂性而不失关键信息。

动机Motivation

  • 许多的数据都处在相对低维的流形中,相较于原始的数据空间
  • 例如如图所示的数字图片:
    • 都是将一个变换后的数字嵌入到100 * 100的图片中
    • 所以实际需要使用100 * 100进行表示
    • 但可以看到仅仅是做了随机的水平变换,垂直变换,旋转变换
    • 可以将这三个维度的潜在属性看作是三个隐变量
      在这里插入图片描述
  • 数据生成过程:先在流形上根据某个分布选择一点(这个分布称为潜在分布),再在输入空间中根据某个条件分布生成一个点
    • 最简单的:假设潜在和观测变量都是服从高斯分布
      • PCA!
  • 应用:数据压缩,可视化,特征提取,降维

主成分分析

两种等价定义

  • 将数据通过正交投影,投影到低维的线性空间中。使得投影之后数据的方差最大化。
  • 等价定义:线性投影,使得平均的投影产生的损失最小化。损失被定义为原始数据点与投影数据点他们之间距离的均方误差。 如图所示,即下图所示蓝线中距离的平方和求平均。
    在这里插入图片描述

定义1-最大化方差的角度

{xn}\{\mathbf x_n\}{xn}为数据向量的集合。其中每一个元素为D维向量。
目标是将数据投影到一个维度为M<DM < DM<D的空间中,并最大化投影数据的方差。

  • 现在,设MMM是已知的。
  • 但是,MMM的选择是具备指导准则的。
  • 先考虑一维空间的情况:
    • 定义这个空间的方向,使用向量u1\mathbf u_1u1,满足u1Tu1=1\mathbf u_1^T\mathbf u_1 = 1u1Tu1=1
    • 对于每个数据点xn\mathbf x_nxn,投影到这个一维方向上的值为u1Txn\mathbf u_1^T\mathbf x_nu1Txn
    • 于是投影后所有数据点的均值为x‾=1N∑n=1Nxn\overline{\mathbf x} = \frac{1}{N}\sum_{n = 1}^N \mathbf{x}_nx=N1n=1Nxn
    • 于是投影后所有数据点的方差为1N∑n=1N(u1Txn−u1Tx‾)2\frac{1}{N}\sum_{n = 1}^N (\mathbf u_1^T \mathbf x_n - \mathbf u_1^T \overline{\mathbf x})^2N1n=1N(u1Txnu1Tx)2
    • 而数据协方差矩阵为S=1N∑n=1N(xn−x‾)(xn−x‾)TS = \frac{1}{N} \sum_{n = 1}^N (\mathbf x_n - \overline{\mathbf x}) (\mathbf x_n - \overline{\mathbf x})^TS=N1n=1N(xnx)(xnx)T
    • 将上式写成转置成原本的形式,再注意到一些为标量的数据,很容易得到:1N∑n=1N(u1Txn−u1Tx‾)2=u1TSu1\frac{1}{N}\sum_{n = 1}^N (\mathbf u_1^T \mathbf x_n - \mathbf u_1^T \overline{\mathbf x})^2 = \mathbf u_1^T S \mathbf u_1N1n=1N(u1Txnu1Tx)2=u1TSu1
    • 我们的目标是关于u1\mathbf u_1u1最大化方差,而注意到先前约束了u1Tu1=1\mathbf u_1^T \mathbf u_1 = 1u1Tu1=1.因此这是一个约束优化问题。引入拉格朗日乘子λ\lambdaλ变成无约束优化问题maxu1 u1TSu1+λ(1−u1Tu1)max_{\mathbf u_1} \ \mathbf u_1^T S \mathbf u_1 + \lambda (1 - \mathbf u_1^T \mathbf u_1)maxu1 u1TSu1+λ(1u1Tu1)
    • 令导数等于0,得到:Su1=λu1S\mathbf u_1 = \lambda \mathbf u_1Su1=λu1这表明了u1\mathbf u_1u1是协方差矩阵SSS的特征向量。将上式左乘u1T\mathbf u_1^Tu1T就得到了上述最大化方差的结果u1Su1=λ\mathbf u_1 S \mathbf u_1 = \lambdau1Su1=λ.
    • 这表明了如果想要使得方差最大,u1\mathbf u_1u1必须是协方差矩阵最大的特征值对应的特征向量。
      • 这个对应的特征向量被称之为第一主成分
  • 对于其他的主成分而言,只需要:
    • 最大化方差
    • 和已有的所有方向都正交即内积等于0
    • 用数学归纳法很容易证明考虑MMM维的空间,我们的主成分为协方差矩阵SSS的M个最大特征值所对应的M个特征向量

定义2:最小化均方误差角度

  • 考虑D维空间中的完全标准正交基向量集合{ui}\{\mathbf u_i\}{ui},其中i=1,2,⋯Di = 1,2,\cdots Di=1,2,D并且满足uiTuj=δij\mathbf u_i^T\mathbf u_j = \delta_{ij}uiTuj=δij
  • 于是每个数据点都能够以该基向量进行表示xn=∑i=1Dαniui\mathbf x_n = \sum_{i = 1}^D \alpha_{ni}\mathbf u_ixn=i=1Dαniui
  • 由于基向量的正交性,显然有:αni=xnTui\alpha_{ni} = \mathbf x_n^T\mathbf u_iαni=xnTui.于是可以将上述式子写作xn=∑i=1D(xnTui)ui\mathbf x_n = \sum_{i = 1}^D (\mathbf x_n^T\mathbf u_i) \mathbf u_ixn=i=1D(xnTui)ui
  • 对于每一个数据点,使用x~n\widetilde{\mathbf x}_nxn用于近似真实的数据点xn\mathbf x_nxn。其中前者定义为x~n=∑i=1Mzniui+∑i=M+1Dbiui\widetilde{\mathbf x}_n = \sum_{i = 1}^M z_{ni}\mathbf u_i + \sum_{i = M + 1}^D b_i \mathbf u_ixn=i=1Mzniui+i=M+1Dbiui.其中每一个zniz_{ni}zni取决于每一个数据点,而bib_ibi对于每个数据点都是相同的。
    • 标准正交基不唯一,zni,biz_{ni},b_iznibi都是需要我们自己定义的
  • 近似的损失函数被定义为J=1N∑n=1N∣∣xn−x~n∣∣2J = \frac{1}{N} \sum_{n = 1}^N ||\mathbf x_n - \widetilde{x}_n||^2J=N1n=1Nxnxn2
    • 因此针对于ui,zni,bi\mathbf u_i,z_{ni},b_iui,zni,bi最小化该损失函数。
    • 首先考虑znjz_{nj}znj并令导数等于0取得:znj=xnTuj,j∈1,2⋯Mz_{nj} = \mathbf x_n^T \mathbf u_j,j\in 1,2\cdots Mznj=xnTuj,j1,2M
    • 同样的方式考虑bjb_jbj,得到bj=x‾Tujb_j = \overline{\mathbf x}^T \mathbf u_jbj=xTuj
    • 将目标函数中的所有zniz_{ni}znibjb_jbj替换掉,并利用上述推导的xn=∑i=1D(xnTui)ui\mathbf x_n = \sum_{i = 1}^D (\mathbf x_n^T\mathbf u_i) \mathbf u_ixn=i=1D(xnTui)ui,得到xn−x~n=∑i=M+1D{(xn−x‾)Tui}ui\mathbf x_n - \widetilde{\mathbf x}_n = \sum_{i = M+1}^D \{(\mathbf x_n - \overline{\mathbf x})^T \mathbf u_i\}\mathbf u_ixnxn=i=M+1D{(xnx)Tui}ui
      • 需要注意上式中用花括号括起来的部分为标量

      • 可以看到,这个差值组成的向量所在的空间和主成分空间即u1,u2,⋯uMu_1,u_2,\cdots u_{M}u1,u2,uM张成的空间是相互正交关系。这是因为投影后的点x~n\widetilde{\mathbf x}_nxn一定要处于主成分空间中,但是可以在那个子空间中自由移动。

      • 例如如图所示的两个点,他们的差值向量和原主成分空间方向相互正交
        在这里插入图片描述

    • 将上面所有的式子带入损失函数后,得到下面的结果:
      在这里插入图片描述于是最后的任务是对向量ui\mathbf u_iui优化。
    • 注意这个优化必须是有约束的
      • 否则uiu_iui全为0向量
    • 先考虑D=2D=2D=2,M=1M = 1M=1情形即选择方向u2\mathbf u_2u2使得上述式子最小。约束条件是u2Tu2=1\mathbf u_2^T \mathbf u_2 = 1u2Tu2=1.使用拉格朗日乘子法得到Su2=λ2u2S\mathbf u_2 = \lambda_2 \mathbf u_2Su2=λ2u2.此时J=λ2J = \lambda_2J=λ2,λ2\lambda_2λ2显然应该是SSS较小的那个特征值
    • 为什么这里不含u1Tu2=0
    • 一般情形下,就选择D−MD-MDM个较小的特征值,得到J的最小值即J=∑i=M+1DλiJ = \sum_{i = M+1}^D \lambda _iJ=i=M+1Dλi
    • 注意:这种方法并没给出用于降维的MMM个基向量,但是由于给出了D-M个剩余的基向量,D个向量组成标准正交基,所以这M个向量张成的空间也确定了。
      • 所以对于数据点xnx_nxn而言,其在这M个基向量张成的空间中的投影是唯一确定的,为∑(xnTui)ui\sum (x_n^Tu_i)u_i(xnTui)ui,这一算出来的结果和最大方差对应基向量求出的是一致的,因为其求出的M个基向量张成的空间与这个是一致的
      • 所以只需要使得这M个基向量与D-M个基向量分别正交,并且这M个基向量两两正交,并且模长为1.任取一组M个满足条件的基向量作为降维的基向量即可
      • 当然,在最大方差的角度中特殊的可以去协方差矩阵S的M个最大特征值对应的特征向量!
      • 换句话说,PCA只用给出主成分空间即可,每个数据点在该空间中的正交投影是唯一的。至于这组空间中的标准正交基可以任意选取。最大方差角度只是自己选择了一套特殊的这组空间的标准正交基。
  • 最后,提及在主成分分析中,可以存在M=DM = DM=D的情形
    • 不做降维,仅仅是作坐标轴的旋转而使得原始数据的坐标轴对齐主成分坐标轴。

应用

数据压缩与重建

考察x~n=∑i=1Mzniui+∑i=M+1Dbiui\widetilde{\mathbf x}_n = \sum_{i = 1}^M z_{ni}\mathbf u_i + \sum_{i = M + 1}^D b_i \mathbf u_ixn=i=1Mzniui+i=M+1Dbiui
将上述PCA推导出的zniz_{ni}znibib_ibi进行带入后得到
x~n=∑i=1M(xnTui)ui+∑i=M+1D(x‾Tui)uiΔ\widetilde{\mathbf{x}}_n = \sum_{i = 1}^M (\mathbf x_n^T \mathbf u_i)\mathbf u_i + \sum_{i = M+1}^D (\overline{\mathbf x}^T\mathbf u_i)\mathbf u_i \qquad \Deltaxn=i=1M(xnTui)ui+i=M+1D(xTui)uiΔ
由于u1,u2⋯unu_1,u_2 \cdots u_nu1,u2un为一组标准的,完备的正交基,于是:
uiTx‾=∑j=1DuiT(x‾Tuj)uj\mathbf u_i^T \overline{\mathbf x} = \sum_{j = 1}^D \mathbf{u_i}^T(\overline{\mathbf x}^T \mathbf u_j) \mathbf u_juiTx=j=1DuiT(xTuj)uj
这是因为中间的数是标量,且向量组的正交和完备性。上式左右两侧左乘ui\mathbf u_iui得到x‾=∑j=1D(x‾Tuj)uj\overline{\mathbf x} = \sum_{j = 1}^D (\overline{\mathbf x}^T \mathbf u_j) \mathbf u_jx=j=1D(xTuj)uj
于是Δ\DeltaΔ式可以写作:x~n=x‾+∑i=1M(xnTui−x‾Tui)ui\widetilde{\mathbf{x}}_n = \overline{\mathbf x} + \sum_{i = 1}^M(\mathbf x_n^T \mathbf u_i - \overline{\mathbf x}^T \mathbf u_i) \mathbf u_i xn=x+i=1M(xnTuixTui)ui
上式表示了重建数据的方法。对于每一个数据点,只需保存其对应主成分的系数即xnTui−x‾Tui\mathbf x_n^T \mathbf u_i - \overline{\mathbf x}^T \mathbf u_ixnTuixTui,共有M个。而原始数据维度为D。这就实现了降维!

数据预处理

  • 标准化数据的一些属性

将式子Sui=λiuiS\mathbf u_i = \lambda_i \mathbf u_iSui=λiui
改写成矩阵形式SU=ULΔSU = UL \quad \DeltaSU=ULΔ
其中U的每一列对应向量uiu_iui,L是由λ\lambdaλ特征值组成的对角矩阵,且显然UUU是正交矩阵
对于每一个数据点xn\mathbf x_nxn,一个被转化后的值由如下式子给出:
yn=L−12UT(xn−x‾)\mathbf y_n = L^{-\frac{1}{2}} U^T (\mathbf x_n - \overline{\mathbf x})yn=L21UT(xnx)
由于∑n=1Nyn=L−12UT(∑n=1Nxn−Nx‾)=0\sum_{n = 1}^N \mathbf y_n = L^{-\frac{1}{2}} U^T (\sum_{n = 1}^N\mathbf x_n -N \overline{\mathbf x} ) = 0n=1Nyn=L21UT(n=1NxnNx)=0
因此转换后的数据具有0均值。即y‾=0\overline{\mathbf y} = 0y=0
又由于covmatrix=1N∑n=1N(yn−y‾)(yn−y‾)Tcovmatrix = \frac{1}{N} \sum_{n = 1}^N(\mathbf y_n - \overline{\mathbf y})(\mathbf y_n - \overline{\mathbf y})^Tcovmatrix=N1n=1N(yny)(yny)T
yn\mathbf y_nyn以及均值为0带入,并注意得到Δ\DeltaΔ式,可以得出
covmatrix=Icovmatrix = Icovmatrix=I即协方差矩阵为对角阵。

  • 以上数据预处理的步骤称为白化(whitening)(whitening)(whitening)

性质分析

考虑上述经过主成分分析后得到的基u1,u2,u3,⋯ ,uD\mathbf u_1,\mathbf u_2,\mathbf u_3,\cdots ,\mathbf u_Du1,u2,u3,,uD,分别对应观测数据协方差矩阵D个从大到小排序的特征值对应的特征向量。对于一个给定的数据点xn\mathbf x_nxn,利用uiTxn\mathbf u_i^T\mathbf x_nuiTxn即可算出对应的主成分。再将所有的观测数据堆叠成一个矩阵XXX,维度为(d,N),其中N是数据点样本维度。

  • 在进行主成分分析时,一般都假定样本矩阵XXX是规范化的。如果没有规范化,作如下变换:
    xij∗=xij−x‾jsiix_{ij}^* = \frac{x_{ij} - \overline{x}_j}{\sqrt{s_{ii}}}xij=siixijxj
    其中sii=1n−1∑j=1n(xij−x‾i)2\sqrt{s_{ii}} = \sqrt{\frac{1}{n-1}\sum_{j = 1}^n (x_{ij} - \overline{x}_i)^2}sii=n11j=1n(xijxi)2
    这样做完后,显然同一个维度而言,其均值为0,方差为111
  • 在经过规范化后,很容易得出样本的协方差矩阵SSS的定义为:
    S=1nXXTS = \frac{1}{n}XX^TS=n1XXT因为均值等于0的缘故
  • 设得到的基u1,u2,u3,⋯ ,uD\mathbf u_1,\mathbf u_2,\mathbf u_3,\cdots ,\mathbf u_Du1,u2,u3,,uD,将其排列成上述正交矩阵UUU。则对于所有样本组成的矩阵而言,其变换结果为UTXU^T\mathbf XUTX
  • 由方差最大的角度的推导过程,可知变换后的每一个维度有最大的方差
  • 但是,对于不同的维度而言,情况如何?
    • 考察维度iiijjj,满足i≠ji \neq ji=j,即矩阵UTXU^T XUTX的第i行和第j行。其分别由式子uiTX\mathbf u_i^T XuiTX和式子ujTX\mathbf u_j^T XujTX所确定!
    • 考察样本的协方差矩阵的第i行和第j列,其由式子
      1n∑p=1N(uiTxp−uiTx‾)(ujTxp−ujTx‾)=uiTSuj\frac{1}{n} \sum_{p = 1}^N (\mathbf u_i^T \mathbf x_p - \mathbf u_i^T \overline{\mathbf x})(\mathbf u_j^T \mathbf x_p - \mathbf u_j^T \overline{\mathbf x}) = u_i^T S u_jn1p=1N(uiTxpuiTx)(ujTxpujTx)=uiTSuj 确定
    • 由于满足Suj=λujSu_j = \lambda u_jSuj=λuj,因此上述式子为0
    • 即变换后不同维度之间是不相关的
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值