奇异值分解
文章目录
- 1. 定理描述
- 2. 引理证明
- 3. 定理证明
以下讨论仅限于实数矩阵范围以内,不考虑复数矩阵。
1. 定理描述
奇异值分解(Singular Value Decomposition, SVD)定理描述如下:
假设 A \mathbf{A} A 是 m × n m \times n m×n 的矩阵,并且 A \mathbf{A} A 的秩为 r a n k ( A ) = r rank(\mathbf{A}) = r rank(A)=r,则 A \mathbf{A} A 可以分解为如下形式:
A = U m × m ( Σ r × r O r × ( n − r ) O ( m − r ) × r O ( m − r ) × ( n − r ) ) m × n V n × n T \mathbf{A} = \mathbf{U}_{m \times m} \begin{pmatrix} \mathbf{\Sigma}_{r \times r} & \mathbf{O}_{r \times (n - r)} \\ \mathbf{O}_{(m - r) \times r} & \mathbf{O}_{(m - r) \times (n - r)} \end{pmatrix}_{m \times n} \mathbf{V}_{n \times n}^T A=Um×m(Σr×rO(m−r)×rOr×(n−r)O(m−r)×(n−r))m×nVn×nT其中:
- Σ r × r = [ σ 1 ⋱ σ r ] r × r \mathbf{\Sigma}_{r \times r} = \begin{bmatrix} \sigma_{1} & & \\ & \ddots & \\ & & \sigma_{r} \end{bmatrix}_{r \times r} Σr×r= σ1⋱σr r×r,这里 σ 1 ⩾ ⋯ ⩾ σ r > 0 \sigma_{1} \geqslant \cdots \geqslant \sigma_{r} > 0 σ1⩾⋯⩾σr>0 是 A \mathbf{A} A 的奇异值, σ i = λ i ( i = 1 , 2 , ⋯ , r ) \sigma_i = \sqrt{\lambda_i} (i = 1, 2, \cdots, r) σi=λi(i=1,2,⋯,r) 为 A T A \mathbf{A^T A} ATA 的 r r r 个非零特征值
- U m × m \mathbf{U}_{m \times m} Um×m 和 V n × n \mathbf{V}_{n \times n} Vn×n 是正交矩阵
2. 引理证明
奇异值分解的证明需要用到秩-零化度定理(Rank-Nullity Theorem)。秩-零化度定理是线性代数的核心定理之一,描述了线性变换或矩阵的秩(rank)与零化度(nullity)之间的关系。定理描述如下:
设 A \mathbf{A} A 为 m × n m \times n m×n 矩阵(这里假设 m > n m > n m>n),则满足:
r a n k ( A ) + n u l l i t y ( A ) = n rank(\mathbf{A}) + nullity(\mathbf{A}) = n rank(A)+nullity(A)=n数学符号说明:
- n u l l i t y nullity nullity 表示零化度,即核空间(零空间)的维度,记 n u l l i t y ( A ) = d i m ( N ( A ) ) nullity(\mathbf{A}) = dim(N(\mathbf{A})) nullity(A)=dim(N(A))
- 符号 N ( A ) N(\mathbf{A}) N(A) 表示矩阵 A \mathbf{A} A 的核空间(Kernel Space),也称为零空间(Null Space)。 N ( A ) N(\mathbf{A}) N(A) 定义为所有满足齐次线性方程组 A x = 0 \mathbf{A} x = 0 Ax=0 的解向量构成的集合:
N ( A ) = x ∈ R n N(\mathbf{A}) = {x \in \Bbb{R}^n} N(A)=x∈Rn
引理一: r a n k ( A A T ) = r a n k ( A T A ) = r a n k ( A ) rank(\mathbf{A} \mathbf{A}^T) = rank(\mathbf{A}^T \mathbf{A}) = rank(\mathbf{A}) rank(AAT)=rank(ATA)=rank(A)
证明:
事实上,我们只需要证明 r a n k ( A T A ) = r a n k ( A ) rank(\mathbf{A}^T \mathbf{A}) = rank(\mathbf{A}) rank(ATA)=rank(A)。
因为当 r a n k ( A T A ) = r a n k ( A ) rank(\mathbf{A}^T \mathbf{A}) = rank(\mathbf{A}) rank(ATA)=rank(A) 成立时,有 r a n k ( A A T ) = r a n k ( ( A A T ) T ) = r a n k ( ( A T ) T A T ) = r a n k ( A T ) = r a n k ( A ) = r a n k ( A T A ) rank(\mathbf{A} \mathbf{A}^T) = rank((\mathbf{A} \mathbf{A}^T)^T) = rank((\mathbf{A}^T)^T \mathbf{A}^T) =rank(\mathbf{A}^T) = rank(\mathbf{A}) = rank(\mathbf{A}^T \mathbf{A}) rank(AAT)=rank((AAT)T)=rank((AT)TAT)=rank(AT)=rank(A)=rank(ATA)。
根据秩-零化度定理有:
r a n k ( A T A ) + d i m ( N ( A T A ) ) = n = r a n k ( A ) + d i m ( N ( A ) ) rank(\mathbf{A}^T \mathbf{A}) + dim(N(\mathbf{A}^T \mathbf{A})) = n = rank(\mathbf{A}) + dim(N(\mathbf{A})) rank(ATA)+dim(N(ATA))=n=rank(A)+dim(N(A))即只需证明 d i m ( N ( A T A ) ) = d i m ( N ( A ) ) dim(N(\mathbf{A}^T \mathbf{A})) = dim(N(\mathbf{A})) dim(N(ATA))=dim(N(A)) 即可。
一方面,对于任意 x ∈ N ( A ) x \in N(\mathbf{A}) x∈N(A),即 A x = 0 \mathbf{A} x = \mathbf{0} Ax=0,从而有:
A T A x = A T 0 = 0 \mathbf{A}^T \mathbf{A} x = \mathbf{A}^T \mathbf{0} = \mathbf{0} ATAx=AT0=0所以有 N ( A ) ⊆ N ( A T A ) N(\mathbf{A}) \subseteq N(\mathbf{A}^T \mathbf{A}) N(A)⊆N(ATA)。
另一方面,对于任意 x ∈ N ( A T A ) x \in N(\mathbf{A}^T \mathbf{A}) x∈N(ATA),即 A T A x = 0 \mathbf{A}^T \mathbf{A} x = 0 ATAx=0,从而有:
x T A T A x = 0 ⇒ ∥ A x ∥ 2 = 0 ⇒ A x = 0 x^T \mathbf{A}^T \mathbf{A} x = 0 \Rightarrow \|\mathbf{A} x\|^2 = 0 \Rightarrow \mathbf{A} x = 0 xTATAx=0⇒∥Ax∥2=0⇒Ax=0所以有 N ( A T A ) ⊆ N ( A ) N(\mathbf{A}^T \mathbf{A}) \subseteq N(\mathbf{A}) N(ATA)⊆N(A)。
综上有 N ( A T A ) = N ( A ) N(\mathbf{A}^T \mathbf{A}) = N(\mathbf{A}) N(ATA)=N(A),即 d i m ( N ( A T A ) ) = d i m ( N ( A ) ) dim(N(\mathbf{A}^T \mathbf{A})) = dim(N(\mathbf{A})) dim(N(ATA))=dim(N(A))。
证毕。
引理二: A T A \mathbf{A}^T \mathbf{A} ATA 和 A A T \mathbf{A} \mathbf{A}^T AAT 的特征值都是非负的,并且 A T A \mathbf{A}^T \mathbf{A} ATA 和 A A T \mathbf{A} \mathbf{A}^T AAT 都是半正定矩阵。
证明:
只证 A T A \mathbf{A}^T \mathbf{A} ATA 的特征值都是非负的,并且 A T A \mathbf{A}^T \mathbf{A} ATA 是非正定矩阵,对于 A A T \mathbf{A} \mathbf{A}^T AAT 仿照证明即可。
令 λ \lambda λ 是 A T A \mathbf{A}^T \mathbf{A} ATA 的一个特征值, v v v 是特征值 λ \lambda λ 对应的特征向量,则有:
A T A v = λ v \mathbf{A}^T \mathbf{A} v = \lambda v ATAv=λv从而有:
λ ∥ v ∥ 2 = λ v T v = v T ( λ v ) = v T A T A v = ( A v ) T ( A v ) = ∥ A v ∥ 2 ≥ 0 \lambda \|v\|^2 = \lambda v^T v = v^T (\lambda v) = v^T \mathbf{A}^T \mathbf{A} v = (\mathbf{A} v)^T (\mathbf{A} v) = \|\mathbf{A} v\|^2 ≥ 0 λ∥v∥2=λvTv=vT(λv)=vTATAv=(Av)T(Av)=∥Av∥2≥0所以有 λ ≥ 0 \lambda ≥ 0 λ≥0。
要证 A T A \mathbf{A}^T \mathbf{A} ATA 是半正定矩阵,只需证对任意 x ∈ R n x \in \Bbb{R}^n x∈Rn 有 x T A x ≥ 0 x^T \mathbf{A} x ≥ 0 xTAx≥0 恒成立。
事实上, x T A T A x = ( A x ) T ( A x ) = ∥ A x ∥ 2 ≥ 0 x^T \mathbf{A}^T \mathbf{A} x = (\mathbf{A} x)^T (\mathbf{A} x) = \|\mathbf{A} x\|^2 ≥ 0 xTATAx=(Ax)T(Ax)=∥Ax∥2≥0。
证毕。
引理三:设 λ 1 , λ 2 \lambda_1, \lambda_2 λ1,λ2 是实对称矩阵 A \mathbf{A} A 的两个互异特征值 ( λ 1 ≠ λ 2 \lambda_1 ≠ \lambda_2 λ1=λ2),对应的特征向量分别为 v 1 v_1 v1 和 v 2 v_2 v2,则 v 1 v_1 v1 和 v 2 v_2 v2 正交。
证明:
由题可知: A v 1 = λ 1 v 1 , A v 2 = λ 2 v 2 \mathbf{A} v_1= \lambda_1 v_1, \mathbf{A} v_2= \lambda_2 v_2 Av1=λ1v1,Av2=λ2v2。一方面,对 A v 1 = λ 1 v 1 \mathbf{A} v_1 = \lambda_1 v_1 Av1=λ1v1 两边进行转置:
( A v 1 ) T = ( λ 1 v 1 ) T ⇒ v 1 T A T = v 1 T A = λ 1 v 1 T ⇒ v 1 T A v 2 = λ 1 v 1 T v 2 (\mathbf{A} v_1)^T = (\lambda_1 v_1)^T \Rightarrow v_1^T \mathbf{A}^T = v_1^T \mathbf{A} = \lambda_1 v_1^T \Rightarrow v_1^T \mathbf{A} v_2 = \lambda_1 v_1^T v_2 (Av1)T=(λ1v1)T⇒v1TAT=v1TA=λ1v1T⇒v1TAv2=λ1v1Tv2另一方面,有:
A v 2 = λ 2 v 2 ⇒ v 1 T A v 2 = λ 2 v 1 T v 2 \mathbf{A} v_2= \lambda_2 v_2 \Rightarrow v_1^T \mathbf{A} v_2 = \lambda_2 v_1^T v_2 Av2=λ2v2⇒v1TAv2=λ2v1Tv2所以有:
λ 1 v 1 T v 2 = λ 2 v 1 T v 2 ⇒ ( λ 1 − λ 2 ) v 1 T v 2 = 0 \lambda_1 v_1^T v_2 = \lambda_2 v_1^T v_2 \Rightarrow (\lambda_1 - \lambda_2) v_1^T v_2 = 0 λ1v1Tv2=λ2v1Tv2⇒(λ1−λ2)v1Tv2=0因为 λ 1 ≠ λ 2 ⇒ λ 1 − λ 2 ≠ 0 \lambda_1 ≠ \lambda_2 \Rightarrow \lambda_1 - \lambda_2 ≠ 0 λ1=λ2⇒λ1−λ2=0,从而有 v 1 T v 2 = 0 v_1^T v_2 = 0 v1Tv2=0,即 v 1 v_1 v1 和 v 2 v_2 v2 正交。
证毕。
引理四(基扩充定理):设 α 1 , α 2 , ⋯ , α m \alpha_1, \alpha_2, \cdots, \alpha_m α1,α2,⋯,αm 是 n n n 维向量空间 R n \Bbb{R}^n Rn 的标准正交向量组(即每个向量长度都为 1,且两两正交),其中 m < n m < n m<n。那么一定存在一组向量 β 1 , β 2 , ⋯ , β n − m \beta_1, \beta_2, \cdots, \beta_{n - m} β1,β2,⋯,βn−m 使得 α 1 , α 2 , ⋯ , α m , β 1 , β 2 , ⋯ , β n − m \alpha_1, \alpha_2, \cdots, \alpha_m, \beta_1, \beta_2, \cdots, \beta_{n - m} α1,α2,⋯,αm,β1,β2,⋯,βn−m 构成 R n \Bbb{R}^n Rn 的标准正交基。
该定理的证明可以通过逐步添加新向量,并应用 Gram-Schmidt 过程进行正交化和归一化,以保持整个集合的标准正交性。在此不进行证明。
3. 定理证明
由引理一可知, r a n k ( A ) = A T A = r rank(\mathbf{A}) = \mathbf{A}^T \mathbf{A} = r rank(A)=ATA=r。根据引理二,不妨设 A T A \mathbf{A}^T \mathbf{A} ATA 的 n n n 个特征值为 λ 1 ≥ λ 2 ≥ ⋯ ≥ λ r > λ r + 1 = ⋯ = λ n = 0 \lambda_1 ≥ \lambda_2 ≥ \cdots ≥ \lambda_r > \lambda_{r + 1} = \cdots = \lambda_n = 0 λ1≥λ2≥⋯≥λr>λr+1=⋯=λn=0,这些特征值可以产生 n n n 个标准正交的特征向量,即构成 n n n 维向量空间 R n \Bbb{R}^n Rn 的标准正交基:
v 1 , v 2 , ⋯ , v r , v r + 1 , ⋯ , v n v_1, v_2, \cdots, v_r, v_{r + 1}, \cdots, v_n v1,v2,⋯,vr,vr+1,⋯,vn当 i ≠ j i ≠ j i=j 时,根据引理三有: ( A v i ) T ( A v j ) = v i T A T A v j = λ i v j T v i = 0 (\mathbf{A} v_i)^T (\mathbf{A} v_j) = v_i^T \mathbf{A}^T \mathbf{A} v_j = \lambda_{i} v_{j}^{T} v_{i} = 0 (Avi)T(Avj)=viTATAvj=λivjTvi=0,所以 A v 1 , A v 2 , ⋯ , A v n \mathbf{A} v_1, \mathbf{A} v_2, \cdots, \mathbf{A} v_n Av1,Av2,⋯,Avn 是正交向量组。
当 i = j i = j i=j 且 i ≤ r i ≤ r i≤r 时, ( A v i ) T ( A v i ) = v i T A T A v i = v i T λ i v i = λ i (\mathbf{A} v_i)^T (\mathbf{A} v_i) = v_i^T \mathbf{A}^T \mathbf{A} v_i =v_i^T \lambda_i v_i = \lambda_i (Avi)T(Avi)=viTATAvi=viTλivi=λi。
令 u i = 1 ∥ A v i ∥ A v i = 1 λ i A v i u_i = \dfrac{1}{\|\mathbf{A} v_i\|} \mathbf{A} v_i = \dfrac{1}{\sqrt{\lambda_i}} \mathbf{A} v_i ui=∥Avi∥1Avi=λi1Avi ( i = 1 , 2 , ⋯ , r ) (i = 1, 2, \cdots, r) (i=1,2,⋯,r),则 u 1 , u 2 , ⋯ , u r u_1, u_2, \cdots, u_r u1,u2,⋯,ur 是 m m m 维向量空间 R m \Bbb{R}^m Rm 的标准向量组,根据引理四,将其扩充为如下的标准正交基:
u 1 , u 2 , ⋯ , u r , b 1 , b 2 , ⋯ , b m − r u_1, u_2, \cdots, u_r, b_1, b_2, \cdots, b_{m - r} u1,u2,⋯,ur,b1,b2,⋯,bm−r则有: A ( v 1 , v 2 , ⋯ , v r , v r + 1 , ⋯ , v n ) = ( λ 1 u 1 , λ 2 u 2 , ⋯ , λ r u r , 0 , ⋯ , 0 ) = ( u 1 , u 2 , ⋯ , u r , b 1 , ⋯ , b m − r ) ( λ 1 λ 2 ⋱ λ r O ( m − r ) × ( n − r ) ) m × n \begin{align*} A\left(v_{1}, v_{2}, \cdots, v_{r}, v_{r+1}, \cdots, v_{n}\right) &= \left(\sqrt{\lambda_{1}} u_{1}, \sqrt{\lambda_{2}} u_{2}, \cdots, \sqrt{\lambda_{r}} u_{r}, \mathbf{0}, \cdots, \mathbf{0}\right) \\ &= \left(u_{1}, u_{2}, \cdots, u_{r}, b_{1}, \cdots, b_{m-r}\right) \begin{pmatrix} \sqrt{\lambda_{1}} & & & \\ & \sqrt{\lambda_{2}} & & \\ & & \ddots & \\ & & & \sqrt{\lambda_{r}} \\ & & & & \mathbf{O}_{(m - r) \times (n - r)} \end{pmatrix}_{m \times n} \end{align*} A(v1,v2,⋯,vr,vr+1,⋯,vn)=(λ1u1,λ2u2,⋯,λrur,0,⋯,0)=(u1,u2,⋯,ur,b1,⋯,bm−r) λ1λ2⋱λrO(m−r)×(n−r) m×n令 { Σ r × r = [ λ 1 ⋱ λ r ] r × r = [ σ 1 ⋱ σ r ] r × r U m × m = ( u 1 , u 2 , ⋯ , u r , b 1 , b 2 , ⋯ , b m − r ) m × m V n × n = ( v 1 , v 2 , ⋯ , v r , v r + 1 , ⋯ , v n ) n × n \begin{cases} \mathbf{\Sigma}_{r \times r} = \begin{bmatrix} \sqrt{\lambda_1} & & \\ & \ddots & \\ & & \sqrt{\lambda_r} \end{bmatrix}_{r \times r} = \begin{bmatrix} \sigma_{1} & & \\ & \ddots & \\ & & \sigma_{r} \end{bmatrix}_{r \times r} \\ \mathbf{U}_{m \times m} = (u_1, u_2, \cdots, u_r, b_1, b_2, \cdots, b_{m - r})_{m \times m} \\ \mathbf{V}_{n \times n} = (v_1, v_2, \cdots, v_r, v_{r + 1}, \cdots, v_n)_{n \times n} \end{cases} ⎩ ⎨ ⎧Σr×r= λ1⋱λr r×r= σ1⋱σr r×rUm×m=(u1,u2,⋯,ur,b1,b2,⋯,bm−r)m×mVn×n=(v1,v2,⋯,vr,vr+1,⋯,vn)n×n则有 U m × m \mathbf{U}_{m \times m} Um×m 和 V n × n \mathbf{V}_{n \times n} Vn×n 都为正交矩阵,
A m × n V n × n = U m × m ( Σ r × r O r × ( n − r ) O ( m − r ) × r O ( m − r ) × ( n − r ) ) m × n \mathbf{A}_{m \times n} \mathbf{V}_{n \times n} = \mathbf{U}_{m \times m} \begin{pmatrix} \mathbf{\Sigma}_{r \times r} & \mathbf{O}_{r \times (n - r)} \\ \mathbf{O}_{(m - r) \times r} & \mathbf{O}_{(m - r) \times (n - r)} \end{pmatrix}_{m \times n} Am×nVn×n=Um×m(Σr×rO(m−r)×rOr×(n−r)O(m−r)×(n−r))m×n即有:
A = U m × m ( Σ r × r O r × ( n − r ) O ( m − r ) × r O ( m − r ) × ( n − r ) ) m × n V n × n T \mathbf{A} = \mathbf{U}_{m \times m} \begin{pmatrix} \mathbf{\Sigma}_{r \times r} & \mathbf{O}_{r \times (n - r)} \\ \mathbf{O}_{(m - r) \times r} & \mathbf{O}_{(m - r) \times (n - r)} \end{pmatrix}_{m \times n} \mathbf{V}_{n \times n}^T A=Um×m(Σr×rO(m−r)×rOr×(n−r)O(m−r)×(n−r))m×nVn×nT证毕。