奇异值分解(SVD)
如果矩阵 Am×n 不能够进行特征值分解,要考虑使用奇异值分解(singular value decomposition,SVD) 化成:
A=UΣVT
其中,Um×m 和 Vn×n 都是正交矩阵,Σm×n 是一个矩形对角矩阵 (rectangular diagonal matrices),并且 Σ 主对角线上的元素都是非负的,记作 σi。
AAT=UΣVTVΣTUT=UΣΣTUT
其中 AAT 是对称矩阵,一定能够对角化。
U 被称作 A 的左奇异向量 (left-singular vectors),它是 AAT 的特征向量的一个集合。
V 被称作 A 的右奇异向量 (right-singular vectors),它是 ATA 的特征向量的一个集合。
AAT 与 ATA 拥有同样的特征值,于是 σi2 是 AAT 的特征值。
相对于特征值分解中 Svi=λvi,奇异值分解有:
Avi=σiuii=1,…,min(m,n)
可以把矩阵 A 看作是一个变换,将 Rm 变换到 Rn,其中 Rm 的基向量为 ui,Rn 的基向量为 vi。
主成分分析(PCA)
主成分分析(Principal components analysis,PCA) 是一种统计分析、简化数据集的方法。它利用正交变换来对一系列可能相关的变量的观测值进行线性变换,从而投影为一系列线性不相关变量的值,这些不相关变量称为主成分(Principal Components)。
用矩阵表示就是
T=XW
把数据变换到新的坐标系统后,使得第一主成分描述的是最大方差的方向,第二主成分是第二大方差的方向,以此类推。
对于每个主成分有:tk(i)=xi⋅w(k)。
为了使得方差最大化,第一个权重向量 w1 应该满足:
w(1)=∥w∥=1argmax{∑(t1)(i)2}=∥w∥=1argmax{∑(x(i)⋅w)2}=∥w∥=1argmax{∥Xw∥2}=∥w∥=1argmax{wTXTXw}
当 w(1) 为单位向量时,
w(1)=argmax{wTwwTXTXw}
瑞利商(Rayleigh quotient) 的定义是:
R(M,x)=x∗xx∗Mx
如果 M 矩阵是一个 Hermitian 矩阵,实数范围内就是对称矩阵,那么有 R(M,x)∈[λmin,λmax],如果取最大值,则 x 为最大的特征值对应的一个特征向量。
所以 w(1) 的就是 XTX 的最大特征值所对应的特征向量,也就是 X 的最大奇异值在 V 中所对应的右奇异向量。
从 X 中减去前 k−1 个主成分得到 Xk^。
Xk^=X−s=1∑k−1Xw(s)w(s)T
w(k)=argmax{wTwwTXk^TXk^w}
经过计算可以得出 Xk^TXk^ 与 XTX 的特征值及特征向量相同,可以得到 w(k) 是 XTX 第 k 大的特征值对应的特征向量。
最后可以写成:
T=XW
其中 Wp×p 是权重矩阵,它的列向量是 XTX 的特征向量,X 是一个 n×p 的矩阵,n 可以代表实验次数,p 可以代表特征的个数。
可以只保留前 L 主成分,得到 TL=XWL,其中 TL 是一个 n×L 的矩阵,WL 是一个 p×L 的矩阵。
将 SVD 用于 PCA
将 X 做 SVD 得到 X=UΣWT,于是 T 可以写成:
T=XW=UΣWTW=UΣ
T 矩阵可以变成左奇异向量乘以对应的奇异值得到,这个叫做极分解(Polar decomposition)。
对于矩阵 A,如果取出 k 个最大的奇异值,得到 Ak。
A=UΣVT=σ1u1v1T+⋯+σrurvrTAk=UkΣkVkT=σ1u1v1T+⋯+σkukvkT
Eckart–Young 定理:如果 B 矩阵的秩为 k,那么 ∥A−B∥≥∥A−Ak∥。
被截取的 n×L 矩阵 TL 可以通过获得 L 个最大的奇异值及其对应的奇异向量组成。
TL=ULΣL=XWL
根据 Eckart–Young 定理,通过这种截断的奇异值分解得到的矩阵,TL 或者 AL 是最接近的原来矩阵的秩为 L 的矩阵。
[1] Matrix Methods in Data Analysis, Signal Processing, and Machine Learning
[2] Principal component analysis
[3] Singular value decomposition
[4] 瑞利商与极值计算
[5] Rayleigh quotient