线性代数 (三): SVD数学证明与理解

SVD 数学证明与理解

命题

只讨论实矩阵.

任意矩阵 Am,nA_{m,n}Am,n​ 可以分解为:

Am,n=UΣVTA_{m,n} = U\Sigma V^TAm,n​=UΣVT

其中 Um,mU_{m,m}Um,m​ 和 Vn,nV_{n, n}Vn,n​ 为由 Rm\R^mRm 和 Rn\R^nRn 下的标准正交基组成, Σ\SigmaΣ 为对角矩阵

证明

ATAA^TAATA 为半正定矩阵, 特征值都为非负数, 记其特征值为 σ(ATA)={σ12...σn2}\sigma (A^TA) = \{\sigma_1^2...\sigma_n^2\}σ(ATA)={σ12​...σn2​}, 并按照从大到小顺序排列

ATAA^T AATA 的秩为 rrr, 则 σ1...σr0=σr+1=...=σn\sigma_1 \ge ... \ge \sigma_r \ge 0 = \sigma_{r+1} = ... = \sigma_nσ1​≥...≥σr​≥0=σr+1​=...=σn​

Σ=diag(σ1...σn),V=[v1...vn]\Sigma = diag(\sigma_1...\sigma_n), V=[v_1 ... v_n]Σ=diag(σ1​...σn​),V=[v1​...vn​] 为其特征值平方根矩阵和对应的标准正交特征向量组

其中

Σ1=diag(σ1...σr),V1=[v1...vr]\Sigma_1 = diag(\sigma_1 ... \sigma_r) , V_1 = [v_1 ... v_r]Σ1​=diag(σ1​...σr​),V1​=[v1​...vr​]

Σ2=diag(σr+1...σn)=0,V2=[vr+1...vn]\Sigma_2 = diag(\sigma_{r+1} ... \sigma_n) = \bold 0, V_2 = [v_{r+1} ... v_n]Σ2​=diag(σr+1​...σn​)=0,V2​=[vr+1​...vn​]

于是有

ATAV1=V1Σ12A^TAV_1 = V_1\Sigma_1^2ATAV1​=V1​Σ12​

变形得

Σ11V1TATAV1Σ11=I\Sigma_1^{-1}V_1^TA^TAV_1\Sigma_1^{-1} = IΣ1−1​V1T​ATAV1​Σ1−1​=I (公式 I )

又有

$A^T A V_2 = V_2 \bold0 $

变形得

V2TATAV2=(AV2)T(AV2)=0V_2^TA^TAV_2 = (AV_2)^T (AV_2)= \bold 0V2T​ATAV2​=(AV2​)T(AV2​)=0

因此

AV2=0AV_2 = \bold 0AV2​=0

U1=AV1Σ11U_1 = AV_1\Sigma_1^{-1}U1​=AV1​Σ1−1​

公式 I, 有 U1TU1=IU_1^TU_1 = IU1T​U1​=I

选择任意 U2U_2U2​ 使得 U=[U1,U2]U = [U_1, U_2]U=[U1​,U2​] 为正交矩阵

于是有

UTAV=[U1,U2]TA[V1,V2]=[U1AV1U1AV2U2AV1U2AV2]=[Σ10U2TU1Σ10]=[Σ1000]=ΣU^TAV = [U_1, U_2]^TA[V_1, V_2] = \begin{bmatrix}U_1AV_1&U_1AV_2\\U_2AV_1&U_2AV_2\end{bmatrix} = \begin{bmatrix}\Sigma _1&\bold 0\\U_2^TU_1\Sigma _1 & \bold 0\end{bmatrix} = \begin{bmatrix}\Sigma_1 & \bold 0 \\ \bold 0 & \bold 0\end{bmatrix} =\SigmaUTAV=[U1​,U2​]TA[V1​,V2​]=[U1​AV1​U2​AV1​​U1​AV2​U2​AV2​​]=[Σ1​U2T​U1​Σ1​​00​]=[Σ1​0​00​]=Σ

所以

A=UΣVTA = U\Sigma V^TA=UΣVT

理解

在我看来, SVD 的功劳是, 它实现了对任意矩阵的特征值分解.

特征值分解的好处是, 它将一个矩阵分解为有限个同阶子矩阵的代权和, 从而实现了有损压缩.

对于本身即可对角化的方阵来说, SVD的速度比常规手段更快

因此, 在PCA中, SVD的角色是实现快速的特征值分解, 因为协方差矩阵本身就可对角化.

上一篇:CSS font-weight 值对应(Regular、Normal、Medium、Light)


下一篇:装饰性属性