奇异值分解(singular value decomposition,SVD)是矩阵因子分解方法。主成分分析、潜在语义分析都用到奇异值分解。矩阵的奇异值分解可以看作是方阵对角化的推广。
15.1 奇异值分解的定义与性质
15.1.1 定义与定理
-
定义15.1(奇异值分解)矩阵的奇异值分解是指,将一个非零的 m × n m\times n m×n实矩阵 A A A, A ∈ R m × n A\in R^{m\times n} A∈Rm×n,表示为以下三个实矩阵乘积形式的运算,即进行矩阵的因子分解:
A = U ∑ V T A=U\sum V^T A=U∑VT其中, U U U是 m m m阶正交矩阵(orthogonal matrix), V V V是 n n n阶正交矩阵, ∑ \sum ∑是由降序排列的非负的对角元素组成的 m × n m\times n m×n矩形对角矩阵(rectangular diagonal matrix). U U T = I UU^T=I UUT=I V V T = I VV^T=I VVT=I ∑ = d i a g ( σ 1 , σ 2 , ⋅ ⋅ ⋅ , σ p ) \sum=diag(\sigma_1,\sigma_2,\cdot\cdot\cdot,\sigma_p) ∑=diag(σ1,σ2,⋅⋅⋅,σp) σ 1 ≥ σ 2 ≥ ⋅ ⋅ ⋅ ≥ σ p ≥ 0 \sigma_1\geq\sigma_2\geq\cdot\cdot\cdot\geq\sigma_p\geq0 σ1≥σ2≥⋅⋅⋅≥σp≥0 p = m i n ( m , n ) p=min(m,n) p=min(m,n) U ∑ V T U\sum V^T U∑VT称为矩阵A的奇异值分解, σ i \sigma_i σi称为矩阵A的奇异值, U U U的列向量称为左奇异向量, V V V的列向量称为右奇异向量。 -
定理15.2(奇异值分解基本定理)若 A A A为一 m × n m\times n m×n实矩阵, A ∈ R m × n A\in R^{m\times n} A∈Rm×n,则 A A A的奇异值分解一定存在 A = U ∑ V T A=U\sum V^T A=U∑VT其中, U U U是 m m m阶正交矩阵(orthogonal matrix), V V V是 n n n阶正交矩阵, ∑ \sum ∑是由降序排列的非负的对角元素组成的 m × n m\times n m×n矩形对角矩阵。
定 理 证 明 : \color{red}{定理证明:} 定理证明: 证明属于构造性的,即构造出奇异值分解的各个矩阵,步骤如下:
- 确定矩阵
V
V
V和
∑
\sum
∑:
矩阵 A A A是 m × n m\times n m×n实矩阵,则矩阵 A T A A^TA ATA是 n n n阶实对称矩阵,因而 A T A A^TA ATA的特征值都是实数,并且存在一个 n n n阶正交实矩阵 V V V实现 A T A A^TA ATA的对角化,使得 V T ( A T A ) V = ⋀ V^T(A^TA)V=\bigwedge VT(ATA)V=⋀成立,其中 ⋀ \bigwedge ⋀是 n n n阶对角矩阵,其对角线元素由 A T A A^TA ATA的特征值组成。( 实 对 称 矩 阵 一 定 可 以 对 角 化 − − − − 矩 阵 理 论 \color{red}{实对称矩阵一定可以对角化----矩阵理论} 实对称矩阵一定可以对角化−−−−矩阵理论)。
A T A A^TA ATA的特征值都是非负的,令 λ \lambda λ矩阵 A T A A^TA ATA 的一个特征值, x x x是对应的特征向量,所以: ∣ ∣ A x ∣ ∣ 2 = x T A T A x = λ x T x = λ ∣ ∣ x ∣ ∣ 2 ||Ax||^2=x^TA^TAx=\lambda x^Tx=\lambda||x||^2 ∣∣Ax∣∣2=xTATAx=λxTx=λ∣∣x∣∣2于是, λ = ∣ ∣ A x ∣ ∣ 2 ∣ x ∣ ∣ 2 ≥ 0 \lambda=\frac{||Ax||^2}{|x||^2}\geq 0 λ=∣x∣∣2∣∣Ax∣∣2≥0正交矩阵 V V V的列的排列使得对应的特征值按照从大到小的顺序排列, λ 1 ≥ λ 2 ≥ ⋯ ≥ λ n ≥ 0 \lambda_1\geq\lambda_2\geq\cdots\geq\lambda_n\geq 0 λ1≥λ2≥⋯≥λn≥0 计算特征值的平方根——矩阵A的奇异值 σ j = λ j , j = 1 , 2 , ⋯ , n \sigma_j=\sqrt\lambda_j, j=1,2,\cdots,n σj=λj,j=1,2,⋯,n设 A A A的秩是 r r r, r a n k ( A ) = r rank(A)=r rank(A)=r,则矩阵 A T A A^TA ATA的秩也是 r r r。由于 A T A A^TA ATA是对称矩阵,它的秩等于正的特征值的个数,所以 λ 1 ≥ λ 2 ≥ ⋯ ≥ λ r > 0 , λ r + 1 = λ r + 2 = ⋯ = λ n = 0 \lambda_1\geq\lambda_2\geq\cdots\geq\lambda_r>0,\lambda_{r+1}=\lambda_{r+2}=\cdots=\lambda_n=0 λ1≥λ2≥⋯≥λr>0,λr+1=λr+2=⋯=λn=0对应的有 σ 1 ≥ σ 2 ≥ ⋯ ≥ σ r > 0 , σ r + 1 = σ r + 2 = ⋯ = σ n \sigma_1\geq\sigma_2\geq\cdots\geq\sigma_r>0,\sigma_{r+1}=\sigma_{r+2}=\cdots=\sigma_n σ1≥σ2≥⋯≥σr>0,σr+1=σr+2=⋯=σn令 V 1 = [ v 1 v 2 ⋯ v r ] , V 2 = [ v r + 1 , v r + 2 , ⋯ , v n ] V_1=[v_1\ v_2\ \cdots v_r],\ V_2=[v_{r+1},v_{r+2},\cdots ,v_n] V1=[v1 v2 ⋯vr], V2=[vr+1,vr+2,⋯,vn] 其中, v 1 , v 2 , ⋯ , v r v_1,v_2,\cdots,v_r v1,v2,⋯,vr分别是矩阵 A T A A^TA ATA的正特征值对应的特征向量, v r + 1 , v r + 2 , ⋯ , v n v_{r+1},v_{r+2},\cdots,v_n vr+1,vr+2,⋯,vn为0特征值对应的特征向量,则 V = [ V 1 , V 2 ] V=[V_1,V_2] V=[V1,V2]此为矩阵特征值分解中的 n n n阶矩阵 V V V.
令 ∑ 1 = [ σ 1 σ 2 ⋱ σ r ] \sum_1= \begin{bmatrix} \sigma_1 & & & \\ & \sigma_2&& \\ & & \ddots& \\ &&&\sigma_r \end{bmatrix} 1∑=⎣⎢⎢⎡σ1σ2⋱σr⎦⎥⎥⎤则 ∑ 1 \sum_1 ∑1是一个对角矩阵,其对角元素为降序排列的正的 σ 1 , σ 2 , ⋯ , σ r \sigma_1,\sigma_2,\cdots,\sigma_r σ1,σ2,⋯,σr,于是 m × n m\times n m×n矩形对角矩阵 ∑ \sum ∑可以表示为 ∑ 1 = [ ∑ 1 0 0 0 ] \sum_1= \begin{bmatrix} \sum_1 &0 \\ 0&0 \\ \end{bmatrix} 1∑=[∑1000]这就是矩阵奇异值分解中的 m × n m\times n m×n矩形对角矩阵 ∑ \sum ∑。
上面的矩阵 V 2 V_2 V2的列向量是矩阵 A T A A^TA ATA对应于特征值为0的特征向量。因此 A T A v j = 0 , j = r + 1 , ⋯ , n A^TAv_j=0,j=r+1,\cdots,n ATAvj=0,j=r+1,⋯,n V 2 V_2 V2的列向量构成了矩阵 A T A A^TA ATA的零空间 N ( A T A ) N(A^TA) N(ATA),而 N ( A T A ) = N ( A ) N(A^TA)=N(A) N(ATA)=N(A)( 零 空 间 问 题 证 明 \color{red}{零空间问题证明} 零空间问题证明)。所以 V 2 V_2 V2的列向量构成 A A A的零空间的一组标准正交基。因此 A V 2 = 0 AV_2=0 AV2=0由于 V V V是正交矩阵,所以 I = V T V = V 1 V 1 T + V 2 V 2 T I=V^TV=V_1V_1^T+V_2V_2^T I=VTV=V1V1T+V2V2T A = A I = A V 1 V 1 T + A V 2 V 2 T = A V 1 V 1 T A=AI=AV_1V_1^T+AV_2V_2^T=AV_1V_1^T A=AI=AV1V1T+AV2V2T=AV1V1T - 确定矩阵
U
U
U
构造 m m m阶矩阵 U U U。令 u j = 1 σ j A v j , j = 1 , 2 , ⋯ , r u_j=\frac{1}{\sigma_j}Av_j,j=1,2,\cdots,r uj=σj1Avj,j=1,2,⋯,r U 1 = [ u 1 u 2 ⋯ u r ] U_1=[u_1\ u_2 \ \cdots u_r] U1=[u1 u2 ⋯ur]则有 A V 1 = U 1 ∑ 1 AV_1=U_1\sum_1 AV1=U11∑
U 1 U_1 U1的列向量构成了一组标准正交集,因为 u i T u j = ( 1 σ i v i T A T ) ( 1 σ j A v j ) u_i^Tu_j=(\frac{1}{\sigma_i}v_i^TA^T)(\frac{1}{\sigma_j}Av_j) uiTuj=(σi1viTAT)(σj1Avj) = 1 σ i σ j v i T ( A T A v j ) =\frac{1}{\sigma_i\sigma_j}v_i^T(A^TAv_j) =σiσj1viT(ATAvj) = σ j σ i v i T v j =\frac{\sigma_j}{\sigma_i}v_i^Tv_j =σiσjviTvj = δ i j , i = 1 , 2 , ⋯ , r ; j = 1 , 2 , ⋯ , r =\delta_{ij}, i=1,2,\cdots,r;j=1,2,\cdots,r =δij,i=1,2,⋯,r;j=1,2,⋯,r可知, u 1 , u 2 , ⋯ , u r u_1,u_2,\cdots,u_r u1,u2,⋯,ur构成 A A A的列空间的一组标准正交基,列空间的维数是 r r r。
令 u r + 1 , u r + 2 , ⋯ , u m u_{r+1},u{r+2},\cdots,u_{m} ur+1,ur+2,⋯,um为 N ( A T ) N(A^T) N(AT)的一组标准正交基。因此, U U U是 m m m阶正交矩阵,这就是矩阵A的奇异值分解中的 m m m阶正交矩阵。 - 证明
U
∑
V
T
=
A
U\sum V^T=A
U∑VT=A
U ∑ V T = [ U 1 U 2 ] [ ∑ 1 0 0 0 ] [ V 1 T V 2 T ] U\sum V^T=[U_1\ U_2]\begin{bmatrix}\sum_1 &0 \\ 0&0 \ \end{bmatrix} \begin{bmatrix} V_1^T\\V_2^T \end{bmatrix} U∑VT=[U1 U2][∑1000 ][V1TV2T] = U 1 ∑ 1 V 1 T = A V 1 V 1 T = A =U_1\sum_1V_1^T=AV_1V_1^T=A =U11∑V1T=AV1V1T=A这就是矩阵 A A A的奇异值分解。
15.1.2 紧奇异值分解与截断奇异值分解
定义15.1的奇异值分解称为矩阵的完全奇异值分解,实际常用的紧奇异值分解与截断奇异值分解。紧奇异值分解是与原始矩阵等秩的奇异值分解,截断奇异值分解是比原始矩阵低秩的奇异值分解。
- 紧奇异值分解
设 m × n m\times n m×n实矩阵 A A A, A ∈ R m × n A\in R^{m\times n} A∈Rm×n,其秩为 r r r, r ≤ m i n ( m , n ) r\leq min(m,n) r≤min(m,n),则称 U r ∑ r V r U_r\sum_rV_r Ur∑rVr为矩阵A的紧奇异值分解,即 A = U r ∑ r V r A=U_r\sum_rV_r A=Urr∑Vr其中 U r U_r Ur是 m × r m\times r m×r矩阵, V r V_r Vr是 n × r n\times r n×r矩阵, ∑ r \sum_r ∑r是 r r r阶对角矩阵。 U r U_r Ur、 V r V_r Vr、 ∑ r \sum_r ∑r分别是由矩阵 U U U、 V V V、 ∑ \sum ∑的前 r r r列、前 r r r列、前 r r r个对角元素构成。紧奇异值分解的秩与原始矩阵 A A A的秩相同。 - 截断奇异值分解
截断奇异值分解是取最大的 k k k个奇异值( k < r k<r k<r, r r r为矩阵的秩)对应的部分。
设 m × n m\times n m×n实矩阵 A A A, A ∈ R m × n A\in R^{m\times n} A∈Rm×n,其秩为 r r r,且 0 < k < r 0<k<r 0<k<r,则称 U k ∑ k V k U_k\sum_kV_k Uk∑kVk为矩阵A的紧奇异值分解,即 A ≈ U k ∑ k V k A\approx U_k\sum_kV_k A≈Ukk∑Vk其中 U k U_k Uk是 m × k m\times k m×k矩阵, V k V_k Vk是 n × k n\times k n×k矩阵, ∑ k \sum_k ∑k是 k k k阶对角矩阵。 U k U_k Uk、 V k V_k Vk、 ∑ k \sum_k ∑k分别是由矩阵 U U U、 V V V、 ∑ \sum ∑的前 k k k列、前 k k k列、前 k k k个对角元素构成。紧奇异值分解的秩比原始矩阵 A A A的秩低。