文章目录
- 矩阵分解
- LU分解
- QR分解
- 特征值分解
- 奇异值分解
- 奇异值分解
- 矩阵的基本子空间
- 奇异值分解的性质
- 矩阵的外积展开式
矩阵分解
矩阵的因式分解是把矩阵表示为多个矩阵的乘积,这种结构更便于理解和计算。
LU分解
设 A A A 是 m × n m\times n m×n 矩阵,若 A A A 可以写成乘积
A = L U A=LU A=LU
其中, L L L 为 m m m 阶下三角方阵,主对角线元素全是1。 U U U 为 A A A 得到一个行阶梯形矩阵。这样一个分解称为LU分解。 L L L 称为单位下三角方阵。
我们先来看看,LU分解的一个应用。当 A = L U A=LU A=LU 时,方程 A x = b A\mathbf x=\mathbf b Ax=b 可写成 L ( U x ) = b L(U\mathbf x)=\mathbf b L(Ux)=b,于是分解为下面两个方程
L y = b U x = y L\mathbf y=\mathbf b \\ U\mathbf x=\mathbf y Ly=bUx=y
因为 L L L 和 U U U 都是三角矩阵,每个方程都比较容易解。
LU 分解算法:本节只讲述仅用行倍加变换求解。可以证明,单位下三角矩阵的乘积和逆也是单位下三角矩阵 。此时,可以用行倍加变换寻找 L L L 和 U U U 。假设存在单位下三角初等矩阵 P 1 , ⋯ , P s P_1,\cdots,P_s P1,⋯,Ps 使
P 1 ⋯ P s A = U P_1\cdots P_sA=U P1⋯PsA=U
于是便得到了 U U U 和 L L L
L = ( P 1 , ⋯ , P s ) − 1 L=(P_1,\cdots,P_s)^{-1} L=(P1,⋯,Ps)−1
QR分解
如果 m × n m\times n m×n 矩阵 A A A 的列向量线性无关,那么 A A A 可以分解为 A = Q R A=QR A=QR,其中 Q Q Q 是一个 m × n m\times n m×n 正交矩阵,其列为 col A \text{col }A col A 的一组标准正交基, R R R 是一个上 n × n n\times n n×n 三角可逆矩阵,且其对角线上的元素全为正数。
证:矩阵 A = ( x 1 , x 2 , ⋯ , x n ) A=(\mathbf x_1,\mathbf x_2,\cdots,\mathbf x_n) A=(x1,x2,⋯,xn) 的列向量是 col A \text{col }A col A 的一组基,使用施密特正交化方法可以构造一组标准正交基 u 1 , u 2 , ⋯ , u n \mathbf u_1,\mathbf u_2,\cdots,\mathbf u_n u1,u2,⋯,un ,取
Q = ( u 1 , u 2 , ⋯ , u n ) Q=(\mathbf u_1,\mathbf u_2,\cdots,\mathbf u_n) Q=(u1,u2,⋯,un)
因为在正交化过程中 x k ∈ span { x 1 , ⋯ , x k } = span { u 1 , ⋯ , u k } , k = 1 , 2 , ⋯ , n \mathbf x_k\in\text{span}\{\mathbf x_1,\cdots,\mathbf x_k\}=\text{span}\{\mathbf u_1,\cdots,\mathbf u_k\},\quad k=1,2,\cdots,n xk∈span{x1,⋯,xk}=span{u1,⋯,uk},k=1,2,⋯,n 。所以 x k \mathbf x_k xk 可线性表示为
x k = r 1 k u 1 + ⋯ + r k k u k + 0 ⋅ u k + 1 + ⋯ + 0 ⋅ u n \mathbf x_k=r_{1k}\mathbf u_1+\cdots+r_{kk}\mathbf u_k+0\cdot\mathbf u_{k+1}+\cdots+0\cdot\mathbf u_n xk=r1ku1+⋯+rkkuk+0⋅uk+1+⋯+0⋅un
于是
x k = Q r k \mathbf x_k=Q\mathbf r_k xk=Qrk
其中 r k = ( r 1 k , ⋯ , r k k , 0 , ⋯ , 0 ) T \mathbf r_k=(r_{1k},\cdots,r_{kk},0,\cdots,0)^T rk=(r1k,⋯,rkk,0,⋯,0)T ,且 r k k ⩾ 0 r_{kk}\geqslant 0 rkk⩾0 (在正交化过程中,若 r k k < 0 r_{kk}<0 rkk<0 ,则 r k k r_{kk} rkk 和 u k \mathbf u_k uk 同乘-1)。取 R = ( r 1 , r 2 , ⋯ , r n ) R=(\mathbf r_1,\mathbf r_2,\cdots,\mathbf r_n) R=(r1,r2,⋯,rn) ,则
A = ( Q r 1 , Q r 2 , ⋯ , Q r n ) = Q R A=(Q\mathbf r_1,Q\mathbf r_2,\cdots,Q\mathbf r_n)=QR A=(Qr1,Qr2,⋯,Qrn)=QR
例:求 A = [ 1 0 0 1 1 0 1 1 1 1 1 1 ] A=\begin{bmatrix}1&0&0\\1&1&0\\1&1&1\\1&1&1\end{bmatrix} A= 111101110011 的一个 QR 分解
解:通过施密特正交化方法我们可以得到 col A \text{col }A col A 的一组标准正交基,将这些向量组成矩阵
Q = [ 1 / 2 − 3 / 12 0 1 / 2 1 / 12 − 2 / 6 1 / 2 1 / 12 1 / 6 1 / 2 1 / 12 1 / 6 ] Q=\begin{bmatrix}1/2&-3/\sqrt{12}&0\\1/2&1/\sqrt{12}&-2/\sqrt{6}\\1/2&1/\sqrt{12}&1/\sqrt{6}\\1/2&1/\sqrt{12}&1/\sqrt{6}\end{bmatrix} Q= 1/21/21/21/2−3/121/121/121/120−2/61/61/6
注意到 Q Q Q 是正交矩阵, Q T = Q − 1 Q^T=Q^{-1} QT=Q−1 。所以 R = Q − 1 A = Q T A R=Q^{-1}A=Q^TA R=Q−1A=QTA
R = [ 1 / 2 1 / 2 1 / 2 1 / 2 − 3 / 12 1 / 12 1 / 12 1 / 12 0 − 2 / 6 1 / 6 1 / 6 ] [ 1 0 0 1 1 0 1 1 1 1 1 1 ] = [ 2 3 / 2 1 0 3 / 12 2 / 12 0 0 2 / 6 ] R=\begin{bmatrix}1/2&1/2&1/2&1/2\\ -3/\sqrt{12}&1/\sqrt{12}&1/\sqrt{12}&1/\sqrt{12} \\ 0&-2/\sqrt{6}&1/\sqrt{6}&1/\sqrt{6} \end{bmatrix} \begin{bmatrix}1&0&0\\1&1&0\\1&1&1\\1&1&1\end{bmatrix}= \begin{bmatrix}2&3/2&1\\0&3/\sqrt{12}&2/\sqrt{12}\\0&0&2/\sqrt{6} \end{bmatrix} R= 1/2−3/1201/21/12−2/61/21/121/61/21/121/6 111101110011 = 2003/23/12012/122/6
特征值分解
特征值分解是将矩阵分解成特征值和特征向量形式:
A = Q Σ Q − 1 A=Q\Sigma Q^{-1} A=QΣQ−1
其中, Σ = diag ( λ 1 , λ 2 , ⋯ , λ n ) \Sigma=\text{diag}(\lambda_1,\lambda_2,\cdots,\lambda_n) Σ=diag(λ1,λ2,⋯,λn) 是一个对角阵,其对角线元素是矩阵 A A A 的特征值按降序排列 λ 1 ⩾ λ 2 ⩾ ⋯ ⩾ λ n \lambda_1\geqslant\lambda_2\geqslant\cdots\geqslant\lambda_n λ1⩾λ2⩾⋯⩾λn, Q = ( u 1 , u 2 , … , u n ) Q=(\mathbf u_1,\mathbf u_2,\dots,\mathbf u_n) Q=(u1,u2,…,un) 是特征值对应的特征向量组成的矩阵。
特征值分解后,方阵的幂变得更容易计算
A t = Q Σ t Q − 1 = Q [ λ 1 t ⋱ λ n t ] Q − 1 A^t=Q\Sigma^t Q^{-1}=Q\begin{bmatrix}\lambda_1^t\\&\ddots\\&&\lambda_n^t\end{bmatrix}Q^{-1} At=QΣtQ−1=Q λ1t⋱λnt Q−1
特征值分解可以理解为:先切换基向量,然后伸缩变换,最后再切换回原来的基向量。其中, Σ \Sigma Σ 中的特征向量描述伸缩变换的程度,特征向量描述变换的方向。
特征值分解有一定的局限性,因为它只适用于满秩的方阵。
例:求矩阵 A = [ − 2 1 1 0 2 0 − 4 1 3 ] A=\begin{bmatrix}-2&1&1\\0&2&0\\-4&1&3\end{bmatrix} A= −20−4121103 的特征值分解。
解:矩阵 A A A 的特征多项式为 det ( A − λ I ) = − ( λ − 2 ) 2 ( λ + 1 ) \det(A-\lambda I)=-(\lambda-2)^2(\lambda+1) det(A−λI)=−(λ−2)2(λ+1) 。特征值和特征向量分别为
λ 1 = − 1 : u 1 = [ 1 0 1 ] ; λ 2 = 2 : u 2 = [ 0 1 − 1 ] , u 3 = [ 1 0 4 ] \lambda_1=-1:\mathbf u_1=\begin{bmatrix}1\\0\\1\end{bmatrix};\quad \lambda_2=2:\mathbf u_2=\begin{bmatrix}0\\1\\-1\end{bmatrix}, \mathbf u_3=\begin{bmatrix}1\\0\\4\end{bmatrix} λ1=−1:u1= 101 ;λ2=2:u2= 01−1 ,u3= 104
可通过行变换计算逆矩阵
( Q , I ) = [ 0 1 1 1 0 0 1 0 0 0 1 0 − 1 4 1 0 0 1 ] → [ 1 0 0 0 1 0 0 1 0 − 1 / 3 1 / 3 1 / 3 0 0 1 4 / 3 − 1 / 3 − 1 / 3 ] = ( I , Q − 1 ) (Q,I)=\begin{bmatrix}\begin{array}{ccc:ccc} 0&1&1&1&0&0\\1&0&0&0&1&0\\-1&4&1&0&0&1 \end{array}\end{bmatrix}\to \begin{bmatrix}\begin{array}{ccc:ccc} 1&0&0&0&1&0\\0&1&0&-1/3&1/3&1/3\\0&0&1&4/3&-1/3&-1/3 \end{array}\end{bmatrix}=(I,Q^{-1}) (Q,I)= 01−1104101100010001 → 1000100010−1/34/311/3−1/301/3−1/3 =(I,Q−1)
所以
A = [ 0 1 1 1 0 0 − 1 4 1 ] [ 2 0 0 0 2 0 0 0 − 1 ] [ 0 1 0 − 1 / 3 1 / 3 1 / 3 4 / 3 − 1 / 3 − 1 / 3 ] A=\begin{bmatrix}0&1&1\\1&0&0\\-1&4&1\end{bmatrix} \begin{bmatrix}2&0&0\\0&2&0\\0&0&-1\end{bmatrix} \begin{bmatrix}0&1&0\\-1/3&1/3&1/3\\4/3&-1/3&-1/3\end{bmatrix} A= 01−1104101 20002000−1 0−1/34/311/3−1/301/3−1/3
奇异值分解
奇异值分解
奇异值分解(Singular Value Decomposition, SVD)是线性代数中一种重要的矩阵分解,在生物信息学、信号处理、金融学、统计学等领域有重要应用。
SVD 可以理解为同一线性变换 T : R n ↦ R m T:\R^n\mapsto\R^m T:Rn↦Rm 在不同基下的矩阵表示。假设 Grant 选用标准基,对应的矩阵为 A m × n A_{m\times n} Am×n 。类似于特征值分解, Jennifer 通过选择合适的基向量,对应的矩阵变为简单的长方形对角矩阵 Σ m × n \Sigma_{m\times n} Σm×n,即只有伸缩变换。
假定 Jennifer 使用矩阵 V n = ( v 1 , ⋯ , v n ) V_n=(\mathbf v_1,\cdots,\mathbf v_n) Vn=(v1,⋯,vn) 的列向量作为 R n R^n Rn 的基,使用矩阵 U n = ( u 1 , ⋯ , u m ) U_n=(\mathbf u_1,\cdots,\mathbf u_m) Un=(u1,⋯,um)的列向量作为 R m R^m Rm 的基 。那么,对于 Jennifer 视角下的向量 x ∈ R n \mathbf x\in R^n x∈Rn
- 同样的向量,用 Grant 的坐标系表示为 V x V\mathbf x Vx
- 用 Grant 的语言描述变换后的向量 A V x AV\mathbf x AVx
- 将变换后的结果变回 Jennifer 的坐标系 U − 1 A V x U^{-1}AV\mathbf x U−1AVx
于是,我们得到同一个线性变换 T T T 在 Jennifer 的坐标系下对应的矩阵 Σ = U − 1 A V \Sigma=U^{-1}AV Σ=U−1AV ,也可理解为矩阵 A A A 分解为 A m × n = U m Σ m × n V n − 1 A_{m\times n}=U_m\Sigma_{m\times n}V^{-1}_n Am×n=UmΣm×nVn−1 。
接下来,自然是探讨上述矩阵分解的适用条件。
注意到
A T A = ( U Σ V − 1 ) T ( U Σ V − 1 ) = V − T Σ T U T U Σ V − 1 A^TA=(U\Sigma V^{-1})^T(U\Sigma V^{-1})=V^{-T}\Sigma^TU^TU\Sigma V^{-1} ATA=(UΣV−1)T(UΣV−1)=V−TΣTUTUΣV−1
不妨取 U , V U,V U,V 为单位正交基,即 U , V U,V U,V 为正交矩阵 U T U = I , V T V = I U^TU=I,V^TV=I UTU=I,VTV=I ,则
A T A = V Σ T Σ V T A^TA=V\Sigma^T\Sigma V^T ATA=VΣTΣVT
于是,可知 V V V 的列向量为 A T A A^TA ATA 的特征向量, Σ T Σ \Sigma^T\Sigma ΣTΣ 为 n n n 阶对角阵,其对角元素为 A T A A^TA ATA 的特征值。事实上 A T A A^TA ATA 为对称阵,必定存在正交矩阵 V V V 相似对角化。
同理
A A T = U Σ Σ T U T AA^T=U\Sigma\Sigma^T U^T AAT=UΣΣTUT
可知 U U U 的列向量为 A A T AA^T AAT 的特征向量, Σ Σ T \Sigma\Sigma^T ΣΣT 为 m m m 阶对角阵,其对角元素为 A A T AA^T AAT 的特征值。矩阵 A T A A^TA ATA 为对称阵,必定存在正交矩阵 U U U 相似对角化。
目前 U , V U,V U,V 我们都求出来了,只剩下求出长方形对角矩阵 Σ \Sigma Σ 。根据 Sylvester降幂公式, A T A A^TA ATA 和 A A T AA^T AAT 有相同的非零特征值。
令 Σ = [ Λ r O O O ] \Sigma=\begin{bmatrix}\Lambda_r&O\\O&O\end{bmatrix} Σ=[ΛrOOO] ,其中 Λ r = diag ( σ 1 , ⋯ , σ r ) \Lambda_r=\text{diag}(\sigma_1,\cdots,\sigma_r) Λr=diag(σ1,⋯,σr) 。则
Σ T Σ = [ Λ r 2 O O O ] n , Σ Σ T = [ Λ r 2 O O O ] m \Sigma^T\Sigma=\begin{bmatrix}\Lambda_r^2&O\\O&O\end{bmatrix}_n,\quad \Sigma\Sigma^T=\begin{bmatrix}\Lambda_r^2&O\\O&O\end{bmatrix}_m ΣTΣ=[Λr2OOO]n,ΣΣT=[Λr2OOO]m
其中 Λ r 2 = diag ( σ 1 2 , ⋯ , σ r 2 ) \Lambda_r^2=\text{diag}(\sigma_1^2,\cdots,\sigma_r^2) Λr2=diag(σ12,⋯,σr2) 。因此,矩阵 Σ \Sigma Σ 的对角元素是 A T A A^TA ATA 和 A A T AA^T AAT 的特征值 λ j \lambda_j λj 的平方根
σ j = λ j \sigma_j=\sqrt{\lambda_j} σj=λj
综上,任意矩阵均可奇异值分解。
定义:SVD是指将秩为 r r r 的 m × n m\times n m×n 矩阵 A A A分解为
A = U Σ V T A=U\Sigma V^T A=UΣVT
其中 U U U 为 m m m 阶正交阵, V V V 为 n n n 阶正交阵, Σ \Sigma Σ 为 m × n m\times n m×n 维长方形对角矩阵,对角元素称为矩阵 A A A 的奇异值,一般按降序排列 σ 1 ⩾ σ 2 ⩾ ⋯ ⩾ σ r > 0 \sigma_1\geqslant\sigma_2\geqslant\cdots\geqslant\sigma_r>0 σ1⩾σ2⩾⋯⩾σr>0 ,这样 Σ \Sigma Σ 就唯一确定了。矩阵 U U U 的列向量称为左奇异向量(left singular vector),矩阵 V V V 的列向量称为右奇异向量(right singular vector)。
例:这里我们用一个简单的矩阵来说明奇异值分解的步骤。求矩阵 A = [ 0 1 1 1 1 0 ] A=\begin{bmatrix}0&1\\1&1\\1&0\end{bmatrix} A= 011110 的奇异值分解
解:首先求出对称阵 A T A A^TA ATA 和 A A T AA^T AAT
A T A = [ 0 1 1 1 1 0 ] [ 0 1 1 1 1 0 ] = [ 2 1 1 2 ] A A T = [ 0 1 1 1 1 0 ] [ 0 1 1 1 1 0 ] = [ 1 1 0 1 2 1 0 1 1 ] A^TA=\begin{bmatrix}0&1&1\\1&1&0\end{bmatrix} \begin{bmatrix}0&1\\1&1\\1&0\end{bmatrix}= \begin{bmatrix}2&1\\1&2\end{bmatrix} \\ AA^T=\begin{bmatrix}0&1\\1&1\\1&0\end{bmatrix} \begin{bmatrix}0&1&1\\1&1&0\end{bmatrix}= \begin{bmatrix}1&1&0\\1&2&1\\0&1&1\end{bmatrix} ATA=[011110] 011110 =[2112]AAT= 011110 [011110]= 110121011
然后求出 A T A A^TA ATA 的特征值和特征向量
λ 1 = 3 : v 1 = [ 1 / 2 1 / 2 ] ; λ 2 = 1 : v 2 = [ − 1 / 2 1 / 2 ] \lambda_1=3:\mathbf v_1=\begin{bmatrix}1/\sqrt{2}\\1/\sqrt{2}\end{bmatrix};\quad \lambda_2=1:\mathbf v_2=\begin{bmatrix}-1/\sqrt{2}\\1/\sqrt{2}\end{bmatrix} λ1=3:v1=[1/21/2];λ2=1:v2=[−1/21/2]
求出 A A T AA^T AAT 的特征值和特征向量
λ 1 = 3 : u 1 = [ 1 / 6 2 / 6 1 / 6 ] ; λ 2 = 1 : u 2 = [ 1 / 2 0 − 1 / 2 ] ; λ 3 = 0 : u 3 = [ 1 / 3 − 1 / 3 1 / 3 ] ; \lambda_1=3:\mathbf u_1=\begin{bmatrix}1/\sqrt{6}\\2/\sqrt{6}\\1/\sqrt{6}\end{bmatrix};\quad \lambda_2=1:\mathbf u_2=\begin{bmatrix}1/\sqrt{2}\\0\\-1/\sqrt{2}\end{bmatrix};\quad \lambda_3=0:\mathbf u_3=\begin{bmatrix}1/\sqrt{3}\\-1/\sqrt{3}\\1/\sqrt{3}\end{bmatrix}; λ1=3:u1= 1/62/61/6 ;λ2=1:u2= 1/20−1/2 ;λ3=0:u3= 1/3−1/31/3 ;
其次可以利用 σ i = λ i \sigma_i=\sqrt{\lambda_i} σi=λi 求出奇异值 3 , 1 \sqrt{3},1 3,1
最终得到 A A A的奇异值分解
A = U Σ V T = [ 1 / 6 1 / 2 1 / 3 2 / 6 0 − 1 / 3 1 / 6 − 1 / 2 1 / 3 ] [ 3 0 0 1 0 0 ] [ 1 / 2 1 / 2 − 1 / 2 1 / 2 ] A=U\Sigma V^T=\begin{bmatrix}1/\sqrt{6}&1/\sqrt{2}&1/\sqrt{3}\\2/\sqrt{6}&0&-1/\sqrt{3}\\1/\sqrt{6}&-1/\sqrt{2}&1/\sqrt{3}\end{bmatrix} \begin{bmatrix}\sqrt{3}&0\\0&1\\0&0\end{bmatrix} \begin{bmatrix}1/\sqrt{2}&1/\sqrt{2}\\-1/\sqrt{2}&1/\sqrt{2}\end{bmatrix} A=UΣVT= 1/62/61/61/20−1/21/3−1/31/3 300010 [1/2−1/21/21/2]
矩阵的基本子空间
设矩阵 A = U Σ V T A=U\Sigma V^T A=UΣVT ,有 r r r 个不为零的奇异值,则可以得到矩阵 A A A 的四个基本子空间:
- 正交阵 U U U 的前 r r r 列是 col A \text{col }A col A 的一组单位正交基
- 正交阵 U U U 的后 m − r m-r m−r 列是 ker A T \ker A^T kerAT 的一组单位正交基
- 正交阵 V V V 的前 r r r 列是 col A T \text{col }A^T col AT 的一组单位正交基
- 正交阵 V V V 的后 n − r n-r n−r 列是 ker A \ker A kerA 的一组单位正交基
A ( v 1 , ⋯ , v r ⏟ col A T , v r + 1 ⋯ v n ⏟ ker A ) = ( u 1 , ⋯ , u r ⏟ col A , u r + 1 ⋯ u m ⏟ ker A T ) [ σ 1 ⋱ σ r O ] ⏟ Σ m × n A(\underbrace{\mathbf v_1,\cdots,\mathbf v_r}_{\text{col }A^T},\underbrace{\mathbf v_{r+1}\cdots\mathbf v_n}_{\ker A})= (\underbrace{\mathbf u_1,\cdots,\mathbf u_r}_{\text{col }A},\underbrace{\mathbf u_{r+1}\cdots\mathbf u_m}_{\ker A^T}) \underbrace{\begin{bmatrix}\sigma_1\\&\ddots\\&&\sigma_r\\&&&O \end{bmatrix}}_{\Sigma_{m\times n}} A(col AT v1,⋯,vr,kerA vr+1⋯vn)=(col A u1,⋯,ur,kerAT ur+1⋯um)Σm×n σ1⋱σrO
证:易知 A V = U Σ AV=U\Sigma AV=UΣ ,即
{ A v i = σ i u i , 1 ⩽ i ⩽ r A v i = 0 , r < i ⩽ n \begin{cases} A\mathbf v_i=\sigma_i\mathbf u_i, &1\leqslant i\leqslant r \\ A\mathbf v_i=0, &r< i\leqslant n \end{cases} {Avi=σiui,Avi=0,1⩽i⩽rr<i⩽n
取 v 1 , ⋯ , v n \mathbf v_1,\cdots,\mathbf v_n v1,⋯,vn 为 R n \R^n Rn 的单位正交基,对于 ∀ x ∈ R n \forall\mathbf x\in \R^n ∀x∈Rn ,可以写出 x = c 1 v 1 + ⋯ + c n v n \mathbf x=c_1\mathbf v_1+\cdots+c_n\mathbf v_n x=c1v1+⋯+cnvn,于是
A x = c 1 A v 1 + ⋯ + c r A v r + c r + 1 A v r + 1 + ⋯ + c n v n = c 1 σ 1 u 1 + ⋯ + c r σ 1 u r + 0 + ⋯ + 0 \begin{aligned} A\mathbf x&=c_1A\mathbf v_1+\cdots+c_rA\mathbf v_r+c_{r+1}A\mathbf v_{r+1}+\cdots+c_n\mathbf v_n \\ &=c_1\sigma_1\mathbf u_1+\cdots+c_r\sigma_1\mathbf u_r+0+\cdots+0 \end{aligned} Ax=c1Av1+⋯+crAvr+cr+1Avr+1+⋯+cnvn=c1σ1u1+⋯+crσ1ur+0+⋯+0
所以 A x ∈ span { u 1 , ⋯ , u r } A\mathbf x\in\text{span}\{\mathbf u_1,\cdots,\mathbf u_r\} Ax∈span{u1,⋯,ur} ,这说明矩阵 U U U 的前 r r r 列是 col A \text{col }A col A 的一组单位正交基,因此 rank A = r \text{rank }A=r rank A=r 。同时可知,对于任意的 x ∈ span { v r + 1 , ⋯ , v n } ⟺ A x = 0 \mathbf x\in\text{span}\{\mathbf v_{r+1},\cdots,\mathbf v_n\}\iff A\mathbf x=0 x∈span{vr+1,⋯,vn}⟺Ax=0 ,于是 V V V 的后 n − r n-r n−r 列是 ker A \ker A kerA 的一组单位正交基。
同样通过 A T U = V Σ A^TU=V\Sigma ATU=VΣ 可说明 V V V 的前 r r r 列是 col A T \text{col }A^T col AT 的一组单位正交基, U U U 的后 m − r m-r m−r 列是 ker A T \ker A^T kerAT 的一组单位正交基。
奇异值分解的性质
设矩阵 A = U Σ V T A=U\Sigma V^T A=UΣVT ,秩 rank A = r \text{rank }A=r rank A=r ,分别将 U , Σ , V U,\Sigma,V U,Σ,V 进行分块
U = ( U r , U m − r ) V = ( V r , V n − r ) Σ = [ Λ r O O O ] U=(U_r,U_{m-r}) \\ V=(V_r,V_{n-r}) \\ \Sigma=\begin{bmatrix}\Lambda_r&O\\O&O\end{bmatrix} U=(Ur,Um−r)V=(Vr,Vn−r)Σ=[ΛrOOO]
其中 U r = ( u 1 , ⋯ , u r ) U_r=(\mathbf u_1,\cdots,\mathbf u_r) Ur=(u1,⋯,ur) 为 m × r m\times r m×r维矩阵, V r = ( v 1 , ⋯ , v r ) V_r=(\mathbf v_1,\cdots,\mathbf v_r) Vr=(v1,⋯,vr) 为 n × r n\times r n×r维矩阵, Λ r = diag ( σ 1 , ⋯ , σ r ) \Lambda_r=\text{diag}(\sigma_1,\cdots,\sigma_r) Λr=diag(σ1,⋯,σr) 为 r r r 阶对角阵。应用矩阵乘法的性质,奇异值分解可以简化为
A = U r Λ r V r T A=U_r\Lambda_r V^T_r A=UrΛrVrT
这个分解称为简化奇异值分解。
性质:
- 奇异值分解可理解为将线性变换分解为三个简单的变换:正交变换 V T V^T VT,伸缩变换 Σ \Sigma Σ 和正交变换 U U U 。
- 矩阵 A A A 的奇异值分解中,奇异值是唯一的,但矩阵 U , V U,V U,V 不是唯一的。
- 令 λ \lambda λ 为 A T A A^TA ATA 的一个特征值, v \mathbf v v 是对应的特征向量,则
∥ A v ∥ 2 = v T A T A v = λ v T v = λ ∥ v ∥ \|A\mathbf v\|^2=\mathbf v^TA^TA\mathbf v=\lambda\mathbf v^T\mathbf v=\lambda\|\mathbf v\| ∥Av∥2=vTATAv=λvTv=λ∥v∥ - 易知 A V = U Σ AV=U\Sigma AV=UΣ 或 A T U = V Σ T A^TU=V\Sigma^T ATU=VΣT,则左奇异向量和右奇异向量存在关系
A v j = σ j u j A T u j = σ j v j A\mathbf v_j=\sigma_j\mathbf u_j \\ A^T\mathbf u_j=\sigma_j\mathbf v_j Avj=σjujATuj=σjvj
矩阵的外积展开式
矩阵 A = U Σ V T A=U\Sigma V^T A=UΣVT 可展开为若干个秩为1的 m × n m\times n m×n矩阵之和
A = σ 1 u 1 v 1 T + σ 2 u 2 v 2 T + ⋯ + σ r u r v r T A=\sigma_1\mathbf u_1\mathbf v_1^T+\sigma_2\mathbf u_2\mathbf v_2^T+\cdots+\sigma_r\mathbf u_r\mathbf v_r^T A=σ1u1v1T+σ2u2v2T+⋯+σrurvrT
上式称为矩阵 A A A 的外积展开式。
在长方形对角矩阵 Σ \Sigma Σ 中奇异值按从大到小的顺序排列 σ 1 ⩾ σ 2 ⩾ ⋯ ⩾ σ r > 0 \sigma_1\geqslant\sigma_2\geqslant\cdots\geqslant\sigma_r>0 σ1⩾σ2⩾⋯⩾σr>0 。在很多情况下,由于奇异值递减很快,前10%甚至1%的奇异值的和就占了全部的奇异值之和的99%以上。因此,我们可以用前面 k k k 个大的奇异值来近似描述矩阵。
奇异值分解也是一种矩阵近似的方法,这个近似是在矩阵范数意义下的近似。矩阵范数是向量范数的直接推广。
∥ A ∥ 2 = ( ∑ j = 1 n ∑ i = 1 m ∣ a i j ∣ 2 ) 1 / 2 \|A\|_2=(\sum_{j=1}^{n}\sum_{i=1}^{m} |a_{ij}|^2)^{1/2} ∥A∥2=(j=1∑ni=1∑m∣aij∣2)1/2
可以证明
∥ A ∥ 2 2 = tr ( A T A ) = ∑ i = 1 r σ i 2 \|A\|_2^2=\text{tr}(A^TA)= \sum_{i=1}^{r} \sigma_i^2 ∥A∥22=tr(ATA)=i=1∑rσi2
设矩阵
A k = ∑ i = 1 k σ i u i v i T A_k=\sum_{i=1}^k\sigma_i\mathbf u_i\mathbf v_i^T Ak=i=1∑kσiuiviT
则 A k A_k Ak 的秩为 k k k ,矩阵 A k A_k Ak 称为 A A A 的截断奇异值分解。并且 A k A_k Ak 是秩为 k k k 时的最优近似,即 A k A_k Ak 为以下最优问题的解
min ∥ A − X ∥ 2 s.t. rank A = k \min\|A-X\|_2 \\ \text{s.t. rank }A=k min∥A−X∥2s.t. rank A=k
上式称为低秩近似(low-rank approximation)。于是奇异值分解可近似为
A ≈ ∑ i = 1 k σ i u i v i T = U m × k Σ k × k V n × k T A\approx \sum_{i=1}^k\sigma_i\mathbf u_i\mathbf v_i^T=U_{m\times k}\Sigma_{k\times k}V_{n\times k}^T A≈i=1∑kσiuiviT=Um×kΣk×kVn×kT
其中 k k k 是一个远远小于 m m m和 n n n的数,从计算机内存的角度来说,矩阵左(右)奇异向量和奇异值的存储要远远小于矩阵 A A A的。所以,截断奇异值分解就是在计算精度和时间空间之间做选择。如果 k k k越大,右边的三个矩阵相乘的结果越接近于 A A A。
截断奇异值分解常用于图像压缩,如下图