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

news2024/11/30 0:43:28

文章目录

  • 矩阵分解
    • 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 P1PsA=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 xkspan{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+0uk+1++0un
于是
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 rkk0 (在正交化过程中,若 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/23/12 1/12 1/12 1/12 02/6 1/6 1/6
注意到 Q Q Q 是正交矩阵, Q T = Q − 1 Q^T=Q^{-1} QT=Q1 。所以 R = Q − 1 A = Q T A R=Q^{-1}A=Q^TA R=Q1A=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/23/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ΣQ1
其中, Σ = 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ΣtQ1=Q λ1tλnt Q1
特征值分解可以理解为:先切换基向量,然后伸缩变换,最后再切换回原来的基向量。其中, Σ \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= 204121103 的特征值分解。

解:矩阵 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= 011 ,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)= 011104101100010001 10001000101/34/311/31/301/31/3 =(I,Q1)
所以
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= 011104101 200020001 01/34/311/31/301/31/3

奇异值分解

奇异值分解

奇异值分解(Singular Value Decomposition, SVD)是线性代数中一种重要的矩阵分解,在生物信息学、信号处理、金融学、统计学等领域有重要应用。

SVD 可以理解为同一线性变换 T : R n ↦ R m T:\R^n\mapsto\R^m T:RnRm 在不同基下的矩阵表示。假设 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 xRn

  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 U1AVx

于是,我们得到同一个线性变换 T T T 在 Jennifer 的坐标系下对应的矩阵 Σ = U − 1 A V \Sigma=U^{-1}AV Σ=U1AV ,也可理解为矩阵 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×nVn1

接下来,自然是探讨上述矩阵分解的适用条件。

注意到
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ΣV1)T(UΣV1)=VTΣTUTUΣV1
不妨取 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 01/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 01/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 mr 列是 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 nr 列是 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+1vn)=(col A u1,,ur,kerAT ur+1um)Σ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,1irr<in
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 xRn ,可以写出 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\} Axspan{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 xspan{vr+1,,vn}Ax=0 ,于是 V V V 的后 n − r n-r nr 列是 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 mr 列是 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,Umr)V=(Vr,Vnr)Σ=[Λ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\| Av2=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} A2=(j=1ni=1maij2)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 A22=tr(ATA)=i=1rσ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=1kσ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 minAX2s.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 Ai=1kσiuiviT=Um×kΣk×kVn×kT

其中 k k k 是一个远远小于 m m m n n n的数,从计算机内存的角度来说,矩阵左(右)奇异向量和奇异值的存储要远远小于矩阵 A A A的。所以,截断奇异值分解就是在计算精度和时间空间之间做选择。如果 k k k越大,右边的三个矩阵相乘的结果越接近于 A A A

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

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1007956.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

web安全漏洞-SQL注入实验2

实验目的 学习sql显注的漏洞判断原理掌握sqlmap工具的使用分析SQL注入漏洞的成因 实验工具 sqlmapsqlmap是用python写的开源的测试框架&#xff0c;支持MySQL&#xff0c;Oracle&#xff0c;PostgreSQL&#xff0c;Microsoft SQL Server&#xff0c;Microsoft Access&#x…

SLS 1508 支持艾默生DeltaV报警抑制模块的设计

SLS 1508 支持艾默生DeltaV报警抑制模块的设计 宣布其SILAlarm V2.10合理化工具支持艾默生DeltaV报警抑制模块的设计和自动配置。这些模块通过在满足预定义条件时抑制来自操作员的警报来消除警报泛滥&#xff0c;并帮助用户符合ISA-18.2和IEC 62682标准。 报警抑制逻辑在艾默…

安全测试BurpSuite-抓包篡改数据

bp做安全测试很核心的一个步骤就是抓包 一、配置代理 浏览器代理&#xff0c;第一种使用浏览器自身手动代理 第二种下载插件&#xff08;推荐使用&#xff0c;切换多个代理方便&#xff09; 1、浏览器chrome/火狐安装插件 2、配置对应的代理情景 二、burp suite配置对应的…

List与ArrayList

目录 一、List及其使用 1.1 List的概念 1.2 常见接口的介绍 1.3 List的使用 二、线性表和顺序表 2.1 线性表 2.2 顺序表 三、ArrayList介绍 四、ArrayList的使用 4.1 ArrayList构造 4.2 ArrayList的常用方法 4.3 ArrayList的遍历 4.4 ArrayList的扩容机制 五、ArrayList的具…

LVS负载均衡群集NAT模式

LVS负载均衡群集NAT模式 一、集群与分布式1.1、集群的含义1.2、lvs模型1.3、系统性能扩展方式1.4、群集的三种类型1.4.1、负载均衡群集1.4.2、高可用群集1.4.3、高性能运算群集 1.5、LVS的负载调度算法1.5.1、轮询1.5.2、加权轮询1.5.3、最少连接1.5.4、加权最少连接1.5.5、ip_…

【Spring源码解析】一文读懂Spring注入模型:开发者必备知识

文章目录 什么是注入模型注入模型的种类案例分析例子一创建Bean对象创建配置类重写后置处理器创建测试类执行测试方法分析 例子二改写站点类&#xff0c;去掉Autowired注解重写后置处理器执行测试方法分析思考 ✨这里是第七人格的博客✨小七&#xff0c;欢迎您的到来~✨ &#…

华为云云耀云服务器L实例评测|怎么搭建企业综合Web平台

前言 记得2019年&#xff0c;公司搞混合云的时候&#xff0c;测试过多家公有云&#xff0c;其中就有华为云。因公司也在深圳&#xff0c;项目也比较急&#xff0c;我司业务上云经验又不足&#xff0c;华为官方获悉情况后&#xff0c;第二天就派了4人小团队到我司来交流&#x…

金蝶云星空与金蝶云星空对接集成发货通知单查询打通发货通知单新增

金蝶云星空与金蝶云星空对接集成发货通知单查询打通发货通知单新增 数据源平台:金蝶云星空 金蝶K/3Cloud结合当今先进管理理论和数十万家国内客户最佳应用实践&#xff0c;面向事业部制、多地点、多工厂等运营协同与管控型企业及集团公司&#xff0c;提供一个通用的ERP服务平台…

加载动态库失败(loadLibrary返回为空 GetLastError126)解决办法 dll有依赖的dll缺失

问题&#xff1a;加载动态库失败&#xff08;loadLibrary返回为空&#xff09; 排除&#xff1a;64位也对。平台相同。 错误&#xff1a;至少找不到一个必需的隐式或转发依赖项。这个不影响。 SmartPay_PGL.dll下的四个dll&#xff0c;则是他所依赖的四个dll。因为我这里有缺失…

破天荒呀!小杜微信有名额了

写在前面 小杜粉&#xff0c;众所周知前面加小杜微信为好友的基本都是由名额限制的。一般都是付费进入社群且进行备注&#xff0c;小杜才会长期保留微信好友。主要由于&#xff0c;添加的人数太多了&#xff0c;微信账号人数名额有限。因此&#xff0c;小杜过一段时间&#xf…

在线会计软件推荐:高效实用的选择解析

如果您始终在密切关注Zoho&#xff0c;您一定知道&#xff0c;我们的软件在一个接一个的增加&#xff0c;为的是构建出一套可以全面在线协作、提升业务生产力的应用系统&#xff0c;我们始终致力于为各类企业构建完整的业务应用&#xff0c;以便他们在Zoho上运行整个业务系统。…

操作系统OS的发展历史和分类

1.手工操作阶段 使用纸带机&#xff0c;输入输出速度慢。但计算机速度快&#xff0c;导致计算机资源大部分时间处于闲置状态。主要缺点:用户独占全机、人机速度矛盾导致资源利用率极低。 2.批处理阶段 1.单道批处理系统 引入脱机输入/输出技术&#xff08;用外围机磁带完成…

Polygon ID:不仅仅是生物识别的人格证明

1. 引言 2023年7月V神在博客 What do I think about biometric proof of personhood? 中指出&#xff1a; 其中的risks包括&#xff1a;不可避免的隐私泄露、人们匿名浏览互联网的能力进一步削弱、威权政府的胁迫&#xff0c;以及在去中心化的同时可能不安全。 Polygon ID致…

【vue】vue 中插槽的三种类型:

文章目录 一、匿名插槽&#xff1a;二、具名插槽&#xff1a;三、作用域插槽 一、匿名插槽&#xff1a;<slot></slot> 1.没有为插槽指定名称 2.通过slot标签可以添加匿名插槽 3.在使用组件的时候&#xff0c;组件中的内容会填充到所有匿名插槽的位置&#xff0c;所…

知识库网站如何搭建?需要注意这五个要点!

正因为知识库提供结构化知识库来记载信息和知识&#xff0c;便于团队沉淀经验、共享资源&#xff0c;形成完整的知识体系并持续进化​&#xff0c;使得它成为当前企业发展新宠。 构建自己/团队的知识库是一个良好的习惯&#xff0c;可以提高工作和学习效率&#xff0c;以下是一…

SpringMVC之JSON数据返回与异常处理机制

目录 一.SpringMVC的JSON数据返回 1.导入Maven依赖 2.配置spring-mvc.xml 3.ResponseBody注解的使用 3.1案例演示 1.List集合转JSON 2.Map集合转JSON 3.返回指定格式String 4. ResponseBody用法 5.Jackson 5.1介绍 5.2常用注解 二.异常处理机制 1.为什么要全局异常处…

$ref赋值之后,子组件不渲染(刷新后,$ref父组件传值,子组件不更新数据问题)

在父组件中&#xff0c;点击搜索&#xff0c; 通过this.$refs传值给子组件 this.$refs.GoodsClassNav.paramsAll.keyword key; 子组件结果中不显示&#xff0c; 但是打印this.$refs.GoodsClassNav.paramsAll.keyword&#xff0c;可以打印到最新的值&#xff0c;点击子组件中…

SpringCloud在idea中一键启动项目

1、如下图文件中加上&#xff1a; <component name"RunDashboard"><option name"configurationTypes"><set><option value"SpringBootApplicationConfigurationType" /></set></option></component>…

CS5817规格书|CS5817芯片参数|多功能便携式显示器方案芯片规格

CS5817支持最高4K 60Hz是集睿致远&#xff08;ASL&#xff09; 新推出的多功能显示控制器芯片&#xff0c;CS5817产品可应用于便携显示器、电竞显示器、桌面显示器、一体式台式机和嵌入式显示系统。 Type-C/DP/HDMI2.0输入转LVDS/eDP/VBO 芯片, 高度集成了多种输入输出接口, 并…

QtCharts详细介绍及其使用

QtCharts模块 QtCharts是Qt框架中的一个模块&#xff0c;用于创建各种图表和数据可视化。它提供了一组功能强大且易于使用的类&#xff0c;使开发人员能够轻松地在应用程序中添加各种交互式图表。 QtCharts模块支持多种常见类型的图表&#xff0c;包括折线图、柱状图、饼图、…