清华大学马辉老师线性代数课程笔记。
首先,我们要搞清楚奇异值分解是用来干啥的。在众多矩阵中,我们最喜欢的矩阵是对角阵,因为对角阵一眼就能看出来秩、行列式、特征值等信息,但可惜的是我们从数学模型中提取出来的很多矩阵都不是对角矩阵,我们要尽量让普通矩阵和对角阵联系起来。由以前线性代数的知识可知,对于满足条件的方阵来说,对角化是一件容易实现的事情,例如实对称矩阵一定可以对角化。但如果不是方阵的时候,我们应该怎么办呢?这就需要奇异值分解了。
若有矩阵 A m × n A_{m\times n} Am×n,正交方阵 U m × m U_{m\times m} Um×m,正交方阵 V n × n V_{n\times n} Vn×n(即 U T = U − 1 , V T = V − 1 U^T=U^{-1},V^T=V^{-1} UT=U−1,VT=V−1)满足
A = U ( σ 1 σ 2 ⋱ σ r 0 ) m × n V T = : U Σ V T A=U\begin{pmatrix} \sigma_1&&&\\& \sigma_2&&&\\&& \ddots&\\ &&&\sigma_r\\&&&&\mathbf0\end{pmatrix}_{m\times n}V^T=:U\Sigma V^T A=U⎝⎜⎜⎜⎜⎛σ1σ2⋱σr0⎠⎟⎟⎟⎟⎞m×nVT=:UΣVT其中, r = r a n k ( A ) r=rank(A) r=rank(A),设 σ 1 ≥ σ 2 ≥ ⋯ σ r ≥ 0 \sigma_1\geq\sigma_2\geq\cdots\sigma_r\geq 0 σ1≥σ2≥⋯σr≥0,则称 σ 1 , σ 2 , ⋯   , σ r \sigma_1,\sigma_2,\cdots,\sigma_r σ1,σ2,⋯,σr为奇异值(singular value),称 U U U和 V V V的前 r r r列向量为奇异向量(singular vector).上面的分解过程为奇异值分解(Singular Value Decomposition,SVD).
将 U 、 V U、V U、V写成列向量形式,则 U = ( u 1 ⋯ u r u r + 1 ⋯ u m ) , V = ( v 1 ⋯ v r v r + 1 ⋯ v n ) , U=(\mathbf u_1\cdots \mathbf u_r\mathbf u_{r+1}\cdots\mathbf u_m),V=(\mathbf v_1\cdots \mathbf v_r\mathbf v_{r+1}\cdots\mathbf v_n), U=(u1⋯urur+1⋯um),V=(v1⋯vrvr+1⋯vn),其中 u i ∈ R m , v i ∈ R n \mathbf u_i\in\mathbb R^m,\mathbf v_i\in\mathbb R^n ui∈Rm,vi∈Rn.
在 A = U Σ V T A=U\Sigma V^T A=UΣVT等式两边同时右乘 V V V,得到 A V = U Σ V T V AV=U\Sigma V^TV AV=UΣVTV,由正交矩阵性质,有 A V = U Σ AV=U\Sigma AV=UΣ,写成向量形式,有
A ( v 1 ⋯ v r v r + 1 ⋯ v n ) = ( u 1 ⋯ u r u r + 1 ⋯ u m ) ( σ 1 σ 2 ⋱ σ r 0 ) m × n A(\mathbf v_1\cdots \mathbf v_r\mathbf v_{r+1}\cdots\mathbf v_n)=(\mathbf u_1\cdots \mathbf u_r\mathbf u_{r+1}\cdots\mathbf u_m)\begin{pmatrix} \sigma_1&&&\\& \sigma_2&&&\\&& \ddots&\\ &&&\sigma_r\\&&&&\mathbf 0\end{pmatrix}_{m\times n} A(v1⋯vrvr+1⋯vn)=(u1⋯urur+1⋯um)⎝⎜⎜⎜⎜⎛σ1σ2⋱σr0⎠⎟⎟⎟⎟⎞m×n因此, (1) A v i = σ i u i , i = 1 , … , r , A\mathbf v_i=\sigma_i\mathbf u_i, i=1,\dots,r,\tag{1} Avi=σiui,i=1,…,r,(1) A v j = 0 , j = r + 1 , ⋯   , m . A\mathbf v_j=0, j=r+1,\cdots,m. Avj=0,j=r+1,⋯,m.将 A = U Σ V T A=U\Sigma V^T A=UΣVT两边均转置得 A T = V Σ T U T A^T=V\Sigma ^TU^T AT=VΣTUT,同理可得 A T U = V Σ T A^TU=V\Sigma ^T ATU=VΣT,因此 (2) A T u i = σ i v i , i = 1 , … , r , A^T\mathbf u_i=\sigma _i\mathbf v_i,i=1,\dots,r,\tag{2} ATui=σivi,i=1,…,r,(2) A T u k = 0 , k = r + 1 , ⋯   , m . A^T\mathbf u_k=\mathbf0,k=r+1,\cdots,m. ATuk=0,k=r+1,⋯,m.
式(1)等式两边同时左乘 A T A^T AT,得到 A T A u i = σ i A T u i A^TA\mathbf u_i=\sigma_iA^T\mathbf u_i ATAui=σiATui,将式(2)带入其中,得到 A T A v i = σ i 2 v i A^TA\mathbf v_i=\sigma _i^2\mathbf v_i ATAvi=σi2vi,同理可得 A A T u i = σ i 2 u i , i = 1 , … , r AA^T\mathbf u_i=\sigma _i^2\mathbf u_i,i=1,\dots,r AATui=σi2ui,i=1,…,r.
这样,我们得到奇异值分解的一个性质:对于式(1)、(2)来说, v i \mathbf v_i vi是 A T A A^TA ATA的关于 σ i 2 \sigma_i^2 σi2的特征向量, u i \mathbf u_i ui是 A A T AA^T AAT的关于 σ i 2 \sigma_i^2 σi2的特征向量,其中, i = 1 , … , r i=1,\dots,r i=1,…,r.
由此,我们由原来的矩阵 A A A构造了两个实对称矩阵: m m m阶的 A A T AA^T AAT和 n n n阶的 A T A A^TA ATA,为接下来的工作打下了基础.
下面的反推过程说明了SVD的合理性
设 A A A是秩为 r r r的 m × n m\times n m×n的实矩阵,则 A A T AA^T AAT为 m m m阶实对称矩阵, A T A A^TA ATA为 n n n阶实对称矩阵,求证:
(1) A A T AA^T AAT与 A T A A^TA ATA的特征值为非负数.
证:设 A T A x = λ x ( x ≠ 0 ) , A^TA\mathbf x=\lambda \mathbf x(\mathbf x\neq \mathbf0), ATAx=λx(x̸=0),则 x T A T A x = λ x T x \mathbf x^TA^TA\mathbf x=\lambda \mathbf x^T\mathbf x xTATAx=λxTx,即
∣ ∣ A x ∣ ∣ 2 = λ ∣ ∣ x ∣ ∣ 2 , ||A\mathbf x||^2=\lambda||\mathbf x||^2, ∣∣Ax∣∣2=λ∣∣x∣∣2,故 λ ≥ 0. \lambda\geq0. λ≥0. 同理 A A T AA^T AAT的特征值也全是非负数.
(2) A A T AA^T AAT与 A T A A^TA ATA的非零特征值集合相同.
证:已知 r a n k ( A A T ) = r a n k ( A T ) = r , rank(AA^T)=rank(A^T)=r, rank(AAT)=rank(AT)=r, r a n k ( A T A ) = r a n k ( A ) = r , rank(A^TA)=rank(A)=r, rank(ATA)=rank(A)=r,且实对称矩阵一定正交相似于对角阵,而相似矩阵有相同的秩和相同的特征值,因此 A A T AA^T AAT的非零特征值的个数与 A T A A^TA ATA的非零特征值的个数都等于 r r r.
设 λ \lambda λ是 A T A A^TA ATA的非零特征值,即 ∃ x , \exists \mathbf x, ∃x,使得 A T A x = λ x A^TA\mathbf x=\lambda \mathbf x ATAx=λx. 则有 A A T A x = λ A x AA^TA\mathbf x=\lambda A\mathbf x AATAx=λAx. 故 λ \lambda λ也是 A A T AA^T AAT的非零特征值.反之亦然. 因此, A A T AA^T AAT与 A T A A^TA ATA具有相同的非零特征值.
不妨设 A A T AA^T AAT和 A T A A^TA ATA的 r r r个非零特征值为 σ 1 2 ≥ ⋯ σ r 2 > 0 \sigma_1^2\geq\cdots\sigma^2_r\gt0 σ12≥⋯σr2>0,其中 σ i > 0 \sigma_i\gt0 σi>0.
设 v 1 , ⋯   , v n ∈ R n \mathbf v_1,\cdots,\mathbf v_n\in \mathbb R^n v1,⋯,vn∈Rn为 n n n阶实对称方程 A T A A^TA ATA的单位正交特征向量,且有向量 u i : = A v i σ i ∈ R m ( 1 ≤ i ≤ r ) . \mathbf u_i:=\frac{A\mathbf v_i}{\sigma_i}\in\mathbb R^m(1\leq i\leq r). ui:=σiAvi∈Rm(1≤i≤r). 记 V = ( v 1 , ⋯   , v n ) , U = ( u 1 , ⋯   , u m ) . V=(\mathbf v_1,\cdots,\mathbf v_n),U=(\mathbf u_1,\cdots,\mathbf u_m). V=(v1,⋯,vn),U=(u1,⋯,um). 若
A T A ( v 1 ⋯ v n ) = ( v 1 ⋯ v n ) ( σ 1 2 ⋱ σ r 2 0 ) A^TA(\mathbf v_1\cdots \mathbf v_n)=(\mathbf v_1\cdots \mathbf v_n)\begin{pmatrix} \sigma^2_1&&&\\& \ddots&\\ &&\sigma^2_r\\&&&\mathbf 0\end{pmatrix} ATA(v1⋯vn)=(v1⋯vn)⎝⎜⎜⎛σ12⋱σr20⎠⎟⎟⎞
(3)推出式(1)、式(2)
证:注意到 A T A v i = σ i 2 v i ( 1 ≤ i ≤ r ) . A^TA\mathbf v_i=\sigma_i^2\mathbf v_i(1\leq i\leq r). ATAvi=σi2vi(1≤i≤r). 故 v i T A T A v i = σ i 2 v i T v i , \mathbf v_i^TA^TA\mathbf v_i=\sigma_i^2\mathbf v_i^T\mathbf v_i, viTATAvi=σi2viTvi,即 ∣ ∣ A x i ∣ ∣ 2 = σ i 2 . ||A\mathbf x_i||^2=\sigma_i^2. ∣∣Axi∣∣2=σi2.
可知 A A T u i = A ( A T A v i σ i ) = A σ i 2 v i σ i = σ i 2 u i , AA^T\mathbf u_i=A(A^T\frac{A\mathbf v_i}{\sigma_i})=\frac{A\sigma^2_i\mathbf v_i}{\sigma_i}=\sigma_i^2\mathbf u_i, AATui=A(ATσiAvi)=σiAσi2vi=σi2ui,所以 u i ( 1 ≤ i ≤ r ) \mathbf u_i(1\leq i\leq r) ui(1≤i≤r)是 A A T AA^T AAT的特征向量,并且由于 v i \mathbf v_i vi为单位正交特征向量,故 u i T u j = ( A v i ) T σ i A v j σ j = v i T ( A T A v j ) σ i σ j = σ j 2 v i T v j σ i σ j = σ j σ i δ i j = δ i j , \mathbf u_i^T\mathbf u_j=\frac{(A\mathbf v_i)^T}{\sigma_i}\frac{A\mathbf v_j}{\sigma_j}=\frac{\mathbf v_i^T(A^TA\mathbf v_j)}{\sigma_i\sigma_j}=\frac{\sigma_j^2\mathbf v_i^T\mathbf v_j}{\sigma_i\sigma_j}=\frac{\sigma_j}{\sigma_i}\delta_{ij}=\delta_{ij}, uiTuj=σi(Avi)TσjAvj=σiσjviT(ATAvj)=σiσjσj2viTvj=σiσjδij=δij,故 { u i ∣ 1 ≤ i ≤ r } \{\mathbf u_i|1\leq i\leq r\} {ui∣1≤i≤r}是 A A T AA^T AAT的单位正交特征向量.
又
A v i = σ i u i , A T u i = σ i v i , 1 ≤ i ≤ r . A\mathbf v_i=\sigma_i\mathbf u_i,A^T\mathbf u_i=\sigma_i\mathbf v_i,\quad 1\leq i\leq r. Avi=σiui,ATui=σivi,1≤i≤r.
故 { u 1 , ⋯   , u r } \{\mathbf u_1,\cdots ,\mathbf u_r\} {u1,⋯,ur}为 R n \mathbb R^n Rn的一组单位正交基; { v 1 , ⋯   , v r } \{\mathbf v_1,\cdots ,\mathbf v_r\} {v1,⋯,vr}为 R m \mathbb R^m Rm的一组单位正交基.
A ( v 1 ⋯ v r ) = ( u 1 ⋯ u r ) ( σ 1 ⋱ σ r ) A(\mathbf v_1\cdots \mathbf v_r)=(\mathbf u_1\cdots \mathbf u_r)\begin{pmatrix} \sigma_1&&\\& \ddots&\\ &&\sigma_r\end{pmatrix} A(v1⋯vr)=(u1⋯ur)⎝⎛σ1⋱σr⎠⎞
记为 A m × n V n × r = U m × r Σ r × r . A_{m\times n}V_{n\times r}=U_{m\times r}\Sigma_{r\times r}. Am×nVn×r=Um×rΣr×r.
扩充 { v 1 , ⋯   , v r } \{\mathbf v_1,\cdots ,\mathbf v_r\} {v1,⋯,vr}为 R n \mathbb R^n Rn的一组基 { v 1 , ⋯   , v r , v r + 1 , ⋯   , v n } \{\mathbf v_1,\cdots ,\mathbf v_r,\mathbf v_{r+1},\cdots,\mathbf v_n\} {v1,⋯,vr,vr+1,⋯,vn},扩充 { u 1 , ⋯   , u r } \{\mathbf u_1,\cdots ,\mathbf u_r\} {u1,⋯,ur}为 R n \mathbb R^n Rn的一组基 { u 1 , ⋯   , u r , u r + 1 , ⋯   , u n } \{\mathbf u_1,\cdots ,\mathbf u_r,\mathbf u_{r+1},\cdots,\mathbf u_n\} {u1,⋯,ur,ur+1,⋯,un}.
则有
A ( v 1 ⋯ v r v r + 1 ⋯ v n ) = ( u 1 ⋯ u r u r + 1 ⋯ u n ) ( σ 1 ⋱ σ r 0 ) m × n , A(\mathbf v_1\cdots \mathbf v_r\mathbf v_{r+1}\cdots\mathbf v_n)=(\mathbf u_1\cdots \mathbf u_r\mathbf u_{r+1}\cdots\mathbf u_n)\begin{pmatrix} \sigma_1&&&\\& \ddots&\\ &&\sigma_r\\&&&\mathbf 0\end{pmatrix}_{m\times n}, A(v1⋯vrvr+1⋯vn)=(u1⋯urur+1⋯un)⎝⎜⎜⎛σ1⋱σr0⎠⎟⎟⎞m×n,
即 A m × n V n × n = U m × m Σ m × n , A_{m\times n}V_{n\times n}=U_{m\times m}\Sigma_{m\times n}, Am×nVn×n=Um×mΣm×n,其中 V T V = I n , U T U = I m . V^TV=I_n,U^TU=I_m. VTV=In,UTU=Im.
又即 A = U Σ V T , A = σ 1 u 1 v 1 T + ⋯ + σ r u r v r T . A=U\Sigma V^T,A=\sigma_1\mathbf u_1\mathbf v_1^T+\cdots+\sigma_r\mathbf u_r\mathbf v_r^T. A=UΣVT,A=σ1u1v1T+⋯+σrurvrT.
SVD与特征值的性质:
设 ∣ λ ∣ m a x |\lambda|_{max} ∣λ∣max是矩阵 A A A的特征值的模长的最大值,则 σ 1 ≥ ∣ λ ∣ m a x , σ 1 ≥ ∣ a i j ∣ , ∀ i , j . \sigma_1\geq|\lambda|_{max},\sigma_1\geq|a_{ij}|,\forall i,j. σ1≥∣λ∣max,σ1≥∣aij∣,∀i,j.证:设 A A A有奇异值分解 A = U Σ V T , A=U\Sigma V^T, A=UΣVT,则对任意向量 x \mathbf x x,有 ∣ ∣ A x ∣ ∣ = ∣ ∣ U Σ V T x ∣ ∣ = ∣ ∣ Σ V T x ∣ ∣ ≤ σ 1 ∣ ∣ V T x ∣ ∣ = σ 1 ∣ ∣ x ∣ ∣ . ||A\mathbf x||=||U\Sigma V^T\mathbf x||=||\Sigma V^T\mathbf x||\leq\sigma_1||V^T\mathbf x||=\sigma_1||\mathbf x||. ∣∣Ax∣∣=∣∣UΣVTx∣∣=∣∣ΣVTx∣∣≤σ1∣∣VTx∣∣=σ1∣∣x∣∣.
这里 U U U和 V T V^T VT都是正交矩阵,从奇异值分解的几何意义来看,只是做旋转,并不改变向量长度,乘上 Σ \Sigma Σ表示向量的伸缩,因为 σ i \sigma_i σi是按照从大到小顺序排列的,故这里 σ 1 \sigma_1 σ1为最大的伸缩比例.
若 A x = λ x A\mathbf x=\lambda\mathbf x Ax=λx,则 ∣ ∣ A x ∣ ∣ = ∣ λ ∣ ⋅ ∣ ∣ x ∣ ∣ ||A\mathbf x||=|\lambda|\cdot||\mathbf x|| ∣∣Ax∣∣=∣λ∣⋅∣∣x∣∣,故 σ 1 ≥ ∣ λ ∣ , \sigma_1\geq|\lambda|, σ1≥∣λ∣,特别有 σ 1 ≥ ∣ λ ∣ m a x . \sigma_1\geq|\lambda|_{max}. σ1≥∣λ∣max.
特别地,若取 x = ( 1 , 0 , ⋯   , 0 ) , \mathbf x=(1,0,\cdots,0), x=(1,0,⋯,0),则 A x A\mathbf x Ax表示 A A A的第一列向量,且 ∣ ∣ A x ∣ ∣ ≤ σ 1 ∣ ∣ x ∣ ∣ = σ 1 ||A\mathbf x||\leq\sigma_1||\mathbf x||=\sigma_1 ∣∣Ax∣∣≤σ1∣∣x∣∣=σ1,而 ∣ a i 1 ∣ ≤ a 11 2 + ⋯ + a n 1 2 ≤ σ 1 . |a_{i1}|\leq\sqrt{a_{11}^2+\cdots+a_{n1}^2}\leq\sigma_1. ∣ai1∣≤a112+⋯+an12≤σ1.同理,依次取不同的 x \mathbf x x,则有 ∣ a i j ∣ ≤ σ 1 |a_{ij}|\leq\sigma_1 ∣aij∣≤σ1.
其他性质
1.矩阵 A A A列满秩 ⇔ A \Leftrightarrow A ⇔A的奇异值均非零.
2.方阵 A A A非奇异 ⇔ A \Leftrightarrow A ⇔A的奇异值均非零.
注:
矩阵的奇异值和其特征值相比的一个优点是非零奇异值的个数恰好是矩阵的秩,而矩阵的非零特征值的个数一般比其秩小,故常以此来计算矩阵的秩.
一般地,设秩为 r r r的 m × n m\times n m×n矩阵 A A A有SVD: A m × n = U Σ V T , A_{m\times n}=U\Sigma V^T, Am×n=UΣVT,则从 R n \mathbb R^n Rn到 R m \mathbb R^m Rm的线性变换 x → A x \mathbf x\rightarrow A\mathbf x x→Ax可看成是以下三步的复合:
① R n \mathbb R^n Rn中的旋转 x → V T x ; \mathbf x\rightarrow V^T\mathbf x; x→VTx;
② R n \mathbb R^n Rn中的向量 V T x V^T\mathbf x VTx的前 r r r个分量做伸缩,其余分量变为0;
③再在 R m \mathbb R^m Rm中做旋转 Σ V T x → U Σ V T x . \Sigma V^T\mathbf x\rightarrow U\Sigma V^T\mathbf x. ΣVTx→UΣVTx.