线性代数的本质(十)——矩阵分解

文章目录

矩阵分解

矩阵的因式分解是把矩阵表示为多个矩阵的乘积,这种结构更便于理解和计算。

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/12 1/12 1/12 1/12 0−2/6 1/6 1/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/12 01/21/12 −2/6 1/21/12 1/6 1/21/12 1/6 111101110011 = 2003/23/12 012/12 2/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

  1. 同样的向量,用 Grant 的坐标系表示为 V x V\mathbf x Vx
  2. 用 Grant 的语言描述变换后的向量 A V x AV\mathbf x AVx
  3. 将变换后的结果变回 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/2 1/2 ];λ2=1:v2=[−1/2 1/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/6 2/6 1/6 ;λ2=1:u2= 1/2 0−1/2 ;λ3=0:u3= 1/3 −1/3 1/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/6 2/6 1/6 1/2 0−1/2 1/3 −1/3 1/3 3 00010 [1/2 −1/2 1/2 1/2 ]

矩阵的基本子空间

设矩阵 A = U Σ V T A=U\Sigma V^T A=UΣVT ,有 r r r 个不为零的奇异值,则可以得到矩阵 A A A 的四个基本子空间:

  1. 正交阵 U U U 的前 r r r 列是 col A \text{col }A col A 的一组单位正交基
  2. 正交阵 U U U 的后 m − r m-r m−r 列是 ker ⁡ A T \ker A^T kerAT 的一组单位正交基
  3. 正交阵 V V V 的前 r r r 列是 col A T \text{col }A^T col AT 的一组单位正交基
  4. 正交阵 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

这个分解称为简化奇异值分解

性质

  1. 奇异值分解可理解为将线性变换分解为三个简单的变换:正交变换 V T V^T VT,伸缩变换 Σ \Sigma Σ 和正交变换 U U U 。
  2. 矩阵 A A A 的奇异值分解中,奇异值是唯一的,但矩阵 U , V U,V U,V 不是唯一的。
  3. 令 λ \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∥
  4. 易知 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。

截断奇异值分解常用于图像压缩,如下图

相关推荐
SteveRocket3 小时前
Python机器学习与数据分析教程之pandas
python·机器学习·数据分析
koo3644 小时前
李宏毅机器学习笔记32
人工智能·笔记·机器学习
材料科学研究4 小时前
机器学习催化剂设计!
深度学习·机器学习·orr·催化剂·催化剂设计·oer
材料科学研究4 小时前
机器学习锂离子电池!预估电池!
深度学习·机器学习·锂离子电池·电池·电池健康·电池管理·电池寿命
长桥夜波4 小时前
机器学习日报04
人工智能·机器学习
吃着火锅x唱着歌8 小时前
LeetCode 74.搜索二维矩阵
算法·leetcode·矩阵
dingzd958 小时前
全平台内容排期与矩阵玩法
人工智能·线性代数·矩阵·web3·facebook·tiktok·instagram
OG one.Z8 小时前
06_决策树
算法·决策树·机器学习
番茄寿司9 小时前
具身智能六大前沿创新思路深度解析
论文阅读·人工智能·深度学习·计算机网络·机器学习
rengang669 小时前
25-TensorFlow:概述Google开发的流行机器学习框架
人工智能·机器学习·tensorflow