主成分分析(Principal Component Analysis,PCA)要解决的问题是:高维数据里有大量相关和冗余信息,能否用更少的坐标表示数据,同时尽可能少地丢掉原有变化?
它给出的答案是一个线性子空间:把坐标轴旋转到数据最分散的方向,再只保留最重要的几个轴。
PCA 是一种通用特征提取方法。传统模式识别会先获取数据、预处理,再提取或选择特征,最后分类;人脸关键点等任务也能人工设计几何特征,但每种应用都要重新设计。PCA 的价值是只依赖数据协方差,就能给出统一的线性降维方案。课件还引用 Stone 对 1929–1938 年美国国民经济的研究:17 个收入与支出变量经 PCA 后,用 3 个新变量保留了约 97.4% 的方差信息。
一、线性映射就是投影
对 p 维向量 x,沿单位方向 u 的一维表示是
f=uTx.
若要降到 k 维,取 k 个单位正交方向组成矩阵
Uk=[u1,u2,…,uk]∈Rp×k,
低维坐标为
z=UkT(x−μ).
这里先减均值 μ 非常重要:PCA 研究的是数据围绕均值的变化方向,而不是原点到数据云的方向。
二、为什么用协方差矩阵
给定 n 个样本,均值和样本协方差矩阵为
μ=n1i=1∑nxi,
Σ=n−11i=1∑n(xi−μ)(xi−μ)T.
- 对角元素是每个原始维度的方差;
- 非对角元素是两个维度的协方差;
- Σ 为实对称半正定矩阵,特征值非负,不同特征值对应的特征向量正交。
因此它恰好同时记录“每个方向变化多大”和“不同维度怎样一起变化”。
三、最大方差视角的推导
中心化后,样本沿 u 投影的方差为
Var(uTx)=uTΣu.
第一主成分要求在 uTu=1 下最大化它。构造拉格朗日函数
J(u)=uTΣu−λ(uTu−1).
求导置零:
∂u∂J=2Σu−2λu=0⟹Σu=λu.
最优方向必须是协方差矩阵的特征向量,投影方差正好等于对应特征值 λ。所以:
- 最大特征值对应第一主成分;
- 次大特征值对应第二主成分;
- 依次排列,且各方向正交、投影后互不相关。
四、最小重构误差视角
低维坐标 z=UkT(x−μ) 可以重构回原空间:
x^=μ+Ukz=μ+UkUkT(x−μ).
若完整正交基的特征值满足
λ1≥λ2≥⋯≥λp≥0,
只保留前 k 个方向时,平均平方重构误差等于被丢弃特征值之和:
n−11i∑∥xi−x^i∥22=j=k+1∑pλj.
要让误差最小,就保留最大的特征值、丢掉最小的特征值。于是“最大保留方差”和“最小重构误差”得到同一个答案。
五、三点例子的完整计算
样本为
x1=(1,1)T,x2=(2,2)T,x3=(3,3)T.
均值 μ=(2,2)T,中心化后的样本为 (−1,−1)、(0,0)、(1,1)。协方差矩阵是
Σ=3−11[2222]=[1111].
特征值为 λ1=2、λ2=0,对应单位特征向量可取
u1=21(1,1)T,u2=21(1,−1)T.
投影到第一主成分后,三个一维坐标为
z1=−2,z2=0,z3=2.
第二方向方差为零,说明所有点本来就在直线 x1=x2 上。只用一维即可无损重构,维度减少一半。
课件还给出两个分别围绕 (−5,−5) 与 (5,5) 分布的类别。两类的主要变化与均值差都大致沿 x1=x2 方向,把二维压到这条对角线的一维坐标后,两团数据仍相距很远;垂直方向只保留各簇的小幅抖动。这个例子说明 PCA 在这里既降维又保住分类结构,但这并非必然,因为 PCA 本身不看类别标签。
六、怎样选择主成分个数
第 i 个主成分的方差贡献率为
ri=∑j=1pλjλi,
前 k 个主成分的累计贡献率为
Rk=∑j=1pλj∑i=1kλi.
课件给出的协方差矩阵
Σ=1−20−250002
具有特征值 5.83,2.00,0.17。第一主成分贡献率约为
5.83+2.00+0.175.83=72.875%,
前两个累计贡献率约为 97.875%,超过常用的 95% 阈值,因此可取 k=2。更重要的是,第一特征向量的第三个分量为零,只取第一主成分会完全丢掉第三个原始变量的变化;这提醒我们不能只机械看一个贡献率数字。
特征值和还满足
i=1∑pλi=tr(Σ),
也就是原始各维总方差。计算完特征分解后可用它做 sanity check。
七、Eigenfaces:把图像当高维向量
一张 64×64 灰度人脸可以拉平成 4096 维向量。不同像素高度相关,直接分类既昂贵又容易受冗余干扰。Eigenfaces 的流程是:
- 将所有训练人脸拉平并计算平均脸;
- 每张脸减去平均脸;
- 计算协方差矩阵并做特征值分解;
- 取前 k 个特征向量组成“特征脸”;
- 把每张人脸投影成 k 维系数,再进行识别。
可视化特征向量时看到的明暗脸形,并不是某个真实人物,而是训练人脸数据方差最大的变化模式。
八、预处理与局限
PCA 对尺度敏感。若“收入”以万元计、“年龄”以年计,方差较大的量纲可能支配结果。量纲不同且没有物理理由保留原尺度时,应先标准化;若各维本来同量纲,如图像像素,通常只需中心化。
PCA 还有三点局限:
- 只能寻找线性子空间;
- 不使用类别标签,最大方差方向未必最利于分类;
- 大方差不一定等于重要信号,小方差方向也可能包含关键类别信息。
九、常见误区与 sanity check
- 先中心化,再算协方差和投影。 忘记减均值是最常见错误。
- 投影矩阵的列应是单位正交特征向量,满足 UkTUk=I。
- 特征值应非负;数值计算出现极小负值通常是浮点误差,大幅负值说明计算有误。
- PCA 让新特征不相关,但不保证统计独立;只有在高斯等额外条件下,不相关才可推出独立。
- “保留 95% 方差”是经验规则,不是所有任务的硬标准,最终仍要看下游性能。