Skip to content

奇异值分解与主成分分析

Published: at 08:07 PM

奇异值分解(SVD)

如果矩阵 Am×nA_{m\times n} 不能够进行特征值分解,要考虑使用奇异值分解(singular value decomposition,SVD) 化成:

A=UΣVTA = U\Sigma V^T

其中,Um×mU_{m\times m}Vn×nV_{n\times n} 都是正交矩阵,Σm×n\Sigma_{m\times n} 是一个矩形对角矩阵 (rectangular diagonal matrices),并且 Σ\Sigma 主对角线上的元素都是非负的,记作 σi\sigma_i

AAT=UΣVTVΣTUT=UΣΣTUTAA^T = U\Sigma V^T V\Sigma^T U^T = U \Sigma\Sigma^T U^T

其中 AATAA^T 是对称矩阵,一定能够对角化。

UU 被称作 AA左奇异向量 (left-singular vectors),它是 AATAA^T 的特征向量的一个集合。

VV 被称作 AA右奇异向量 (right-singular vectors),它是 ATAA^TA 的特征向量的一个集合。

AATAA^TATAA^TA 拥有同样的特征值,于是 σi2\sigma_i^2AATAA^T 的特征值。

相对于特征值分解中 Svi=λviSv_i = \lambda v_i,奇异值分解有:

Avi=σiuii=1,,min(m,n)Av_i = \sigma_i u_i \qquad i = 1, \ldots, \min(m, n)

可以把矩阵 AA 看作是一个变换,将 Rm\mathbb{R}^m 变换到 Rn\mathbb{R}^n,其中 Rm\mathbb{R}^m 的基向量为 uiu_iRn\mathbb{R}^n 的基向量为 viv_i

主成分分析(PCA)

主成分分析(Principal components analysis,PCA) 是一种统计分析、简化数据集的方法。它利用正交变换来对一系列可能相关的变量的观测值进行线性变换,从而投影为一系列线性不相关变量的值,这些不相关变量称为主成分(Principal Components)。

用矩阵表示就是

T=XWT = XW

把数据变换到新的坐标系统后,使得第一主成分描述的是最大方差的方向,第二主成分是第二大方差的方向,以此类推。

对于每个主成分有:tk(i)=xiw(k)t_{k(i)} = x_{i} \cdot w_{(k)}

为了使得方差最大化,第一个权重向量 w1w_1 应该满足:

w(1)=argmaxw=1{(t1)(i)2}=argmaxw=1{(x(i)w)2}=argmaxw=1{Xw2}=argmaxw=1{wTXTXw}\begin{align*} \\ w_{(1)} & = \underset{\Vert \mathbf{w} \Vert = 1}{\arg \max} \{ \sum(t_1)^2_{(i)}\} \\ & = \underset{\Vert \mathbf{w} \Vert = 1}{\arg \max} \{ \sum(x_{(i)}\cdot w)^2\} \\ & = \underset{\Vert \mathbf{w} \Vert = 1}{\arg \max} \{{\Vert Xw \Vert}^2\} \\ & = \underset{\Vert \mathbf{w} \Vert = 1}{\arg \max} \{ w^TX^TXw \} \\\\ \end{align*}

w(1)w_{(1)} 为单位向量时,

w(1)=argmax{wTXTXwwTw}w_{(1)} = \arg \max \left\{ \frac{w^TX^TXw}{w^Tw} \right\}

瑞利商(Rayleigh quotient) 的定义是:

R(M,x)=xMxxxR(M, x) = \frac{x^*Mx} {x^*x}

如果 MM 矩阵是一个 Hermitian 矩阵,实数范围内就是对称矩阵,那么有 R(M,x)[λmin,λmax]R(M, x) \in [\lambda_{min}, \lambda_{max}],如果取最大值,则 xx 为最大的特征值对应的一个特征向量。

所以 w(1)w_{(1)} 的就是 XTXX^TX 的最大特征值所对应的特征向量,也就是 XX 的最大奇异值在 VV 中所对应的右奇异向量。

XX 中减去前 k1k - 1 个主成分得到 Xk^\hat{X_k}

Xk^=Xs=1k1Xw(s)w(s)T\hat{X_k} = X - \sum_{s = 1}^{k - 1}Xw_{(s)}w_{(s)}^T w(k)=argmax{wTXk^TXk^wwTw}w_{(k)} = \arg \max \left\{ \frac{w^T\hat{X_k}^T\hat{X_k}w}{w^Tw} \right\}

经过计算可以得出 Xk^TXk^\hat{X_k}^T\hat{X_k}XTXX^TX 的特征值及特征向量相同,可以得到 w(k)w_{(k)}XTXX^TXkk 大的特征值对应的特征向量。

最后可以写成:

T=XWT = XW

其中 Wp×pW_{p \times p} 是权重矩阵,它的列向量是 XTXX^TX 的特征向量,XX 是一个 n×pn \times p 的矩阵,nn 可以代表实验次数,pp 可以代表特征的个数。

可以只保留前 LL 主成分,得到 TL=XWLT_L = X W_L,其中 TLT_L 是一个 n×Ln \times L 的矩阵,WLW_L 是一个 p×Lp \times L 的矩阵。

将 SVD 用于 PCA

XX 做 SVD 得到 X=UΣWTX = U\Sigma W^T,于是 TT 可以写成:

T=XW=UΣWTW=UΣ\begin{align*} T &= XW \\ &= U\Sigma W^TW \\ &= U\Sigma \end{align*}

TT 矩阵可以变成左奇异向量乘以对应的奇异值得到,这个叫做极分解(Polar decomposition)

对于矩阵 AA,如果取出 kk 个最大的奇异值,得到 AkA_k

A=UΣVT=σ1u1v1T++σrurvrTAk=UkΣkVkT=σ1u1v1T++σkukvkTA = U \Sigma V^T = \sigma_1u_1v_1^T + \dots + \sigma_ru_rv_r^T \\ A_k = U_k \Sigma_k V_k^T = \sigma_1u_1v_1^T + \dots + \sigma_ku_kv_k^T

Eckart–Young 定理:如果 BB 矩阵的秩为 kk,那么 ABAAk\Vert A - B \Vert \ge \Vert A - A_k \Vert

被截取的 n×Ln\times L 矩阵 TLT_L 可以通过获得 LL 个最大的奇异值及其对应的奇异向量组成。

TL=ULΣL=XWLT_L = U_L\Sigma_L = X W_L

根据 Eckart–Young 定理,通过这种截断的奇异值分解得到的矩阵,TLT_L 或者 ALA_L 是最接近的原来矩阵的秩为 LL 的矩阵。

[1] Matrix Methods in Data Analysis, Signal Processing, and Machine Learning

[2] Principal component analysis

[3] Singular value decomposition

[4] 瑞利商与极值计算

[5] Rayleigh quotient