Principal Component Analysis

主成分分析

主成分分析 (PCA) 是一种数据降维方法,可以从两种角度推导——最大化投影方差或最小化重构误差。

首先引入记号。设数据集为 {xn}n=1N,其中 xnRd,也可记作矩阵形式: X=[x1TxNT]RN×d 不失一般性地,我们假设数据的均值为 0,否则可以事先进行中心化。于是有样本协方差矩阵: S=1Nn=1NxnxnT=1NXTXRd×d 显然 S 是一个对称阵,即 ST=S. 我们将看到,PCA 的本质其实就是求解 S 的特征值与特征向量

角度一·最大化投影方差

为了降维,我们考虑将数据点投影到一个 r 维子空间中,其中 r<d. 降维必然会导致信息损失,为了尽可能少地损失信息,我们希望投影后的数据在各个维度上的方差尽可能大。

首先考虑一维情形。设投影空间的基向量为 u1Rd,满足 u1Tu1=1,则每个 xn 将被投影为 u1Txn. 投影后数据的样本均值仍为 0,而样本方差为: 1Nn=1N(u1Txn)2=u1TSu1 于是优化问题为: maxu1  u1TSu1s.t.  u1Tu1=1 引入拉格朗日乘子 λ1,构建拉格朗日函数: L(u1,λ1)=u1TSu1+λ1(1u1Tu1)u1 求导并令为零,可得: Lu1=2Su12λ1u1=0Su1=λ1u1 这说明 λ1,u1 正是 S 的特征值和特征向量。代入优化目标: u1TSu1=λ1u1Tu1=λ1 因此,为了使得优化目标最大,λ1 应取 S 的最大特征值,u1 为对应的特征向量,称作第一个主成分。

对于更多维的情形,我们以增量的方式定义下一个主成分,并要求新的主成分与已求得的主成分正交。例如,对于第二个主成分 u2,优化问题写作: maxu2  u2TSu2s.t.  u1Tu2=0,u2Tu2=1 引入拉格朗日乘子 λ2,λ12,构建拉格朗日函数: L(u2,λ2,λ12)=u2TSu2+λ2(1u2Tu2)λ12u1Tu2u2 求导并令为零,可得: Lu2=2Su22λ2u2λ12u1=0 上式左乘 u1T 得: 2u1TSu22λ2u1Tu2λ12u1Tu1=00λ12=0 其中第一项等于零是因为 u1TSu2=(Su1)Tu2=λ1u1Tu2=0. 将 λ12=0 代回,我们得到: Su2=λ2u2 这说明 λ2,u2 也是 S 的特征值和特征向量。代入优化目标: u2TSu2=λ2u2Tu2=λ2 于是,为了让优化目标最大,λ2 应取 S 的次大特征值,u2 为对应的特征向量,称作第二个主成分。

以此类推,我们可以得到结论:r 个主成分就是 Sr 大的特征值所对应的特征向量

角度二·最小化重构误差

第二个推导角度的出发点是在一个 r(r<d) 维的线性子空间中近似表示数据,并希望近似的误差最小。具体而言,设 r 维子空间的一组正交基为 (u1,,ur),其中 uiRd,则该子空间中的任一点可唯一表示为: x~n=i=1rγniui 其中 γn1,,γnr 是表示系数。将这组基扩充为 Rd 中的完备正交基 (u1,,ud),那么每个 xn 在这组基下都有唯一的线性表示: xn=i=1dαniui=i=1d(xnTui)ui 其中 αni=xnTui 是表示系数。于是,重构误差写作: J=1Nn=1Nxnx~n2=1Nn=1Ni=1r(xnTuiγni)ui+i=r+1d(xnTui)ui2γni 求导并令为零,解得: γni=xnTui 于是优化目标简化为: J=1Nn=1Ni=r+1d(xnTui)ui2=1Nn=1N[i=r+1d(xnTui)ui]T[j=r+1d(xnTuj)uj]=1Nn=1Ni=r+1d(xnTui)2=i=r+1duiTSui 至此,我们的优化问题变成了: min{ui}  i=r+1duiTSuis.t.  uiTui=1  uiTuj=0,ij 这与上一节得到的优化问题是类似的,只不过这里是最小化,因此解就是 S 最小的 dr 个特征值对应的特征向量。相应地,u1,,ur 张成的空间就是 S 最大的 r 个特征值对应的特征向量张成的空间,因此直接取 最大的 个特征值对应的特征向量即可。

计算上的考量

通过上面两小节的推导,我们发现 PCA 就是要求解样本协方差矩阵 的前 大的特征值与对应的特征向量。然而众所周知,求解特征值与特征向量并不是一件容易的事,所以我们会有一些计算上的考量。

首先,我们最好保证数据在各个维度上的取值范围差不多,否则 PCA 的解将偏向于取值范围大的维度,因为它们具有更大的方差。因此实践中我们最好对数据进行标准化,而非仅仅中心化。等价地,这相当于我们用相关矩阵、而非协方差矩阵去求解。

其次,在高维度场景下,即 时,为了节省计算量,我们可以求解 Gram 矩阵 的特征值与特征向量而非协方差矩阵 的特征值与特征向量。这是因为矩阵论的知识告诉我们, 有着相同的非零特征值,并且特征向量也有简单的变换关系。具体而言,假设 的特征值分解为: 其中 是特征向量构成的矩阵, 是特征值构成的对角阵。那么左乘 得: 这说明 的特征值也是 ,而特征向量构成的矩阵为 . 我们将会看到,这种计算方式也让我们能够在 PCA 中用上核技巧。

最后,根据特征值与奇异值的关系,求解 的特征值与特征向量,其实等价于求解 的奇异值与右奇异向量。具体而言,设有奇异值分解 ,那么: 所以我们直接求解 最大的 个奇异值对应的右奇异向量即可。

核主成分分析

SVMRKHS 中,我们介绍了核技巧及其在 SVM 中的应用。自然地可以想到,核技巧也可以用在 PCA 中。具体而言,设有非线性映射 将数据点 映射为特征 ,其中 可以是无穷。设核函数为 ,满足: 考虑在特征空间中实施 PCA,那么这就相当于在数据空间中做了非线性的主成分分析。

我们暂时假设映射后特征的均值依旧是 ,则特征空间中的样本协方差矩阵为: 不过,为了使用上核技巧,我们需要的是 而非 . 好在根据前文的讨论,求解 的特征值与特征向量,可以转化为求解 Gram 矩阵的特征值与特征向量: 假设求解出 的特征向量为 ,则 的第 个特征向量为: 其中 表示 的第 个维度。 模长的平方为: 于是数据点 上的投影为: 现在还有一个遗留问题——我们假设映射后特征的均值依旧是 ,但这并不总是正确(即便数据的均值是 )。假设中心化后的特征为: 那么相应的 Gram 矩阵 的第 行第 列为: 写作矩阵形式,即: 其中 表示所有元素均为 的矩阵。于是我们求解 的特征值与特征向量即可。

参考资料

  1. Bishop, Christopher M., and Nasser M. Nasrabadi. Pattern recognition and machine learning. ↩︎
  2. Murphy, Kevin P. Probabilistic Machine Learning: An Introduction. ↩︎
  3. Hastie, Trevor, Robert Tibshirani, and Jerome Friedman. The elements of statistical learning: data mining, inference, and prediction. ↩︎

Principal Component Analysis
https://xyfjason.github.io/blog-main/2024/10/25/Principal-Component-Analysis/
作者
xyfJASON
发布于
2024年10月25日
许可协议