给定 m 个 n 维数据点 x1,x2,…,xm,希望找到数据的低维表示,保留尽可能多的信息。
-
中心化:xˉ=m1∑i=1mxi,x~i=xi−xˉ
-
构造数据矩阵:X=(x~1,x~2,…,x~m)T(m×n)
-
协方差矩阵:C=m−11XTX(n×n 实对称半正定矩阵)
-
对 C 进行特征值分解:C=VΛVT
-
选择前 k 个最大特征值对应的特征向量,构成投影矩阵 W=(v1,…,vk)
-
低维表示:zi=WTx~i
对 X 进行 SVD:X=UΣVT
则 C=m−11VΣ2VT
PCA 的主成分方向就是 V 的列向量,主成分的方差为 m−1σi2。
前 k 个主成分解释的方差比例为:
ρk=∑i=1rσi2∑i=1kσi2
通常选择 k 使 ρk≥0.85(或 0.90,0.95)。
优点:
缺点:
- 线性方法,无法处理非线性结构
- 主成分可能缺乏可解释性
- 对异常值敏感
用户-物品评分矩阵 R(m×n)大部分元素缺失,需要预测缺失的评分。
将评分矩阵分解为两个低秩矩阵的乘积:
R≈PQT
其中 P 为 m×k(用户隐因子矩阵),Q 为 n×k(物品隐因子矩阵),k≪min(m,n)。
minP,Q∑(i,j)∈Ω(rij−piTqj)2+λ(∥P∥F2+∥Q∥F2)
其中 Ω 为已观测评分的集合,λ 为正则化参数。
随机梯度下降(SGD):
pi←pi+η(eijqj−λpi)
qj←qj+η(eijpi−λqj)
其中 eij=rij−piTqj,η 为学习率。
交替最小二乘(ALS):
固定 Q,求解 P;固定 P,求解 Q。交替进行直到收敛。
截断 SVD 可以用于推荐系统,但需要处理缺失值。常用方法:
- 用均值填充缺失值后做 SVD
- 使用 SVD 的变体(如 SVD++)
- 直接优化低秩近似
- Netflix Prize 竞赛中,矩阵分解方法是获胜算法的核心
- Amazon、淘宝等电商的推荐系统
- 音乐、视频推荐
灰度图像可以表示为矩阵 A(m×n),对 A 进行 SVD:
A=∑i=1rσiuiviT
保留前 k 个奇异值:
Ak=∑i=1kσiuiviT
原始存储:m×n 个数
压缩后存储:k(m+n+1) 个数(k 个 σi,k 个 ui,k 个 vi)
压缩比:k(m+n+1)mn
保留的奇异值越多,压缩质量越高:
∥A∥F∥A−Ak∥F=∑i=1rσi2∑i=k+1rσi2
对于 256×256 的图像,取 k=50:
- 原始:256×256=65536 个数
- 压缩后:50×(256+256+1)=25650 个数
- 压缩比:约 2.55:1
给定带标签的数据,找到投影方向使类间距离最大、类内距离最小。
设 SB 为类间散布矩阵,SW 为类内散布矩阵,优化目标:
maxwwTSWwwTSBw
广义特征值问题:SBw=λSWw
若 SW 可逆:SW−1SBw=λw
对 SW−1SB 进行特征值分解,取前 k 个最大特征值对应的特征向量。
| 特点 | PCA | LDA |
|---|
| 类型 | 无监督 | 有监督 |
| 目标 | 最大化方差 | 最大化类间/类内比 |
| 适用场景 | 无标签数据 | 有标签数据 |
| 投影方向数 | 最多 n | 最多 c−1(c 为类别数) |
- 潜在语义分析(LSA):对词-文档矩阵做 SVD,发现潜在语义结构
- 词嵌入:基于矩阵分解的词向量学习方法
- 降噪:截断小奇异值去除噪声
- 信号分离:利用 SVD 分离混合信号
- 矩阵低秩近似:Eckart-Young 定理保证 SVD 给出最优低秩近似
- 条件数估计:κ(A)=σmax/σmin
- 有效秩:根据奇异值分布确定矩阵的”有效秩”
- 模型降阶:用低秩近似简化高阶系统
- 可控性与可观测性:通过矩阵的秩分析系统性质