动机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=1∑Nxn
- 于是投影后所有数据点的方差为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=1∑N(u1Txn−u1Tx)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=1∑N(xn−x)(xn−x)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=1∑N(u1Txn−u1Tx)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+λ(1−u1Tu1)
- 令导数等于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=1∑Dα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=1∑D(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=1∑Mzniui+i=M+1∑Dbiui.其中每一个zniz_{ni}zni取决于每一个数据点,而bib_ibi对于每个数据点都是相同的。
- 标准正交基不唯一,zni,biz_{ni},b_izni,bi都是需要我们自己定义的
- 近似的损失函数被定义为J=1N∑n=1N∣∣xn−x~n∣∣2J = \frac{1}{N} \sum_{n = 1}^N ||\mathbf x_n - \widetilde{x}_n||^2J=N1n=1∑N∣∣xn−xn∣∣2
- 因此针对于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,j∈1,2⋯M
- 同样的方式考虑bjb_jbj,得到bj=x‾Tujb_j = \overline{\mathbf x}^T \mathbf u_jbj=xTuj
- 将目标函数中的所有zniz_{ni}zni和bjb_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_ixn−xn=i=M+1∑D{(xn−x)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-MD−M个较小的特征值,得到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=1∑Mzniui+i=M+1∑Dbiui
将上述PCA推导出的zniz_{ni}zni和bib_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=1∑M(xnTui)ui+i=M+1∑D(xTui)uiΔ
由于u1,u2⋯unu_1,u_2 \cdots u_nu1,u2⋯un为一组标准的,完备的正交基,于是:
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=1∑DuiT(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=1∑D(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=1∑M(xnTui−xTui)ui
上式表示了重建数据的方法。对于每一个数据点,只需保存其对应主成分的系数即xnTui−x‾Tui\mathbf x_n^T \mathbf u_i - \overline{\mathbf x}^T \mathbf u_ixnTui−xTui,共有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=L−21UT(xn−x)
由于∑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=1∑Nyn=L−21UT(n=1∑Nxn−Nx)=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=1∑N(yn−y)(yn−y)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∗=siixij−xj
其中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=n−11j=1∑n(xij−xi)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。
- 由方差最大的角度的推导过程,可知变换后的每一个维度有最大的方差
- 但是,对于不同的维度而言,情况如何?
- 考察维度iii与jjj,满足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=1∑N(uiTxp−uiTx)(ujTxp−ujTx)=uiTSuj 确定 - 由于满足Suj=λujSu_j = \lambda u_jSuj=λuj,因此上述式子为0
- 即变换后不同维度之间是不相关的
主成分分析PCA是一种降维技术,通过找到数据最大方差的方向(主成分)来压缩数据,同时保持数据集的主要特性。PCA通过最大化投影数据的方差或最小化投影误差来实现,其关键步骤包括数据预处理(如标准化)、协方差矩阵计算、特征值分解及选择最大特征值对应的特征向量作为主成分。PCA在数据压缩、可视化、特征提取等方面有广泛应用,通过保留最重要的主成分,可以降低数据复杂性而不失关键信息。
75

被折叠的 条评论
为什么被折叠?



