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

文章目录

  • 矩阵分解
    • 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.rhkb.cn/news/131809.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

论文阅读 - Outlier detection in social networks leveraging community structure

目录 摘要 1. Introduction 2. Related works 3. Preliminaries 3.1. 模块化度量 3.2. Classes of outliers 3.2.1. 点异常 3.2.2. Contextual anomalies 3.2.3. Collective anomalies 3.3. Problem definition 3.4. Outliers score 4. Methodology 4.1. Proposed appr…

86 # express 基本实现

koa 和 express 的区别 koa 内部原理使用 es6 来编写的&#xff08;promise async await&#xff09;&#xff0c;express 是使用 es5 来编写的&#xff0c;内部是基于回调函数来实现express 内置了很多中间件&#xff08;功能会比 koa 强大一些&#xff0c;内部集成了路由&a…

OPENCV--实现meanshift图像分割

Meanshift原理 效果图 API # -*- coding:utf-8 -*- """ 作者:794919561 日期:2023/9/13 """ import cv2 import numpy as npimg = cv2.imread("F:\\learnOpenCV\\openCVLearning\\pictures\\Lena.jpg

过拟合、欠拟合、泛化误差、训练误差

模型容量的影响&#xff1a; 泛化误差&#xff1a; 当训练的模型的容量过了最优点时&#xff0c;泛化误差反而升高&#xff0c;这是由于模型过于关注细节导致&#xff0c;模型也同时记住噪声&#xff1b;当拿来一个真的数据时&#xff0c;模型会被一些无关紧要的细节所干扰。 …

ASP.NET dotnet 3.5 实验室信息管理系统LIMS源码

技术架构&#xff1a;ASP.NET dotnet 3.5 LIMS作为一个信息管理系统&#xff0c;它有着和ERP、MIS之类管理软件的共性&#xff0c;如它是通过现代管理模式与计算机管理信息系统支持企业或单位合理、系统地管理经营与生产&#xff0c;最大限度地发挥现有设备、资源、人、技术的…

27.EI文章复现《高比例清洁能源接入下计及需求响应的配电网重构》

下载地址&#xff1a;高比例清洁能源接入下计及需求响应的配电网重构 1主要内容 该程序复现《高比例清洁能源接入下计及需求响应的配电网重构》&#xff0c;以考虑网损成本、弃风弃光成本和开关操作惩罚成本的综合成本最小为目标&#xff0c;针对配电网重构模型的非凸性&…

PyTorch实战-实现神经网络图像分类基础Tensor最全操作详解(一)

目录 前言 一、PyTorch数据结构-Tensor 1.什么是Tensor 2.数据Tensor使用场景 3.张量形态 标量&#xff08;0D 张量&#xff09; 向量&#xff08;1D 张量&#xff09; 矩阵(2D张量) 3D 张量与高维张量 二、Tensor的创建 1. 从列表或NumPy数组创建 2. 使用特定的初始…

5.10.WebRTC接口宏

那今天呢&#xff1f;我给大家介绍一下web rtc的接口宏&#xff0c;那之所以在现成的章节中要介绍接口宏。是由于接口在调用的过程中啊&#xff0c;会发生线程的切换&#xff0c;所以把接口宏这部分知识我们放在线程这一章还算比较合适的。 那另外呢&#xff0c;我们对于接口…

分库分表---理论

目录 一、垂直切分 1、垂直分库 2、垂直分表 3、垂直切分优缺点 二、水平切分 1、水平分库 2、水平分表 3、水平切分优缺点 三、数据分片规则 1、Hash取模分表 2、数值Range分表 3、一致性Hash算法 四、分库分表带来的问题 1、分布式事务问题 2、跨节点关联查询…

IT运维:利用数据分析平台采集Windows event log数据

概述 本文将介绍如何借助Winlogbeat和Vector在鸿鹄里采集Windows event log数据&#xff0c;使技术人员能够在鸿鹄里更便捷和高效地分析Windows event log数据。 操作步骤 Winlogbeat是一个开源的日志数据采集器&#xff0c;专门用于采集Windows操作系统中的event log数据。它可…

C语言之指针进阶篇(3)

目录 思维导图 回调函数 案例1—计算器 案例2—qsort函数 关于qsort函数 演示qsort函数的使用 案例3—冒泡排序 整型数据冒泡排序 回调函数搞定各类型冒泡排序 cmp_int比较大小 cmp传参数 NO1. NO2. 解决方案 交换swap 总代码 今天我们学习指针难点之回调函数…

支付宝小程序排名优化,一个小白的成长手记

那是一个风和日丽的周末早上,阳光透过窗帘洒进屋内,温暖了我的双脚。这是我加入新公司的第一个周末,我坐在桌前,满怀激情地准备开发我的第一个支付宝小程序。【名即薇】 经过两天两夜的奋战,我终于完成了一个初版的支付宝小程序。是一个集美食资讯、餐厅点评、外卖订餐于一体的…

连nil切片和空切片一不一样都不清楚?那BAT面试官只好让你回去等通知了。

连nil切片和空切片一不一样都不清楚&#xff1f;那BAT面试官只好让你回去等通知了。 问题 package mainimport ("fmt""reflect""unsafe" )func main() {var s1 []ints2 : make([]int,0)s4 : make([]int,0)fmt.Printf("s1 pointer:%v, s2 p…

两种方法教你在postman设置请求里带动态token

问题描述 在使用postman调试接口时&#xff0c;遇到一些需要在请求里加上token的接口&#xff0c;若token出现变化&#xff0c;需要手动修改接口的token值&#xff0c;带来重复的工作量&#xff0c;翻看postman使用手册后&#xff0c;我发现了两种方法可以解决这个问题。 01 …

MySQL之数据类型

目录 一、MySQL数据类型分类 二、数值类型 1、整数类型 2、bit类型 3、小数类型 三、字符串类型 1、char 2、varchar 3、char和varchar比较 四、日期和时间类型 五、enum和set 一、MySQL数据类型分类 MySQL 数据类型可以大致分为以下三类&#xff1a; 数值类型&#xff1a;用于…

git快速查看某个文件修改的所有commit

1. git blame file git blame 可以显示历史修改的每一行记录,有时候我们只想了解某个文件一共提交几次commit,只显示commit列表,这种方式显然不满足要求。 2.git log常规使用 (1)显示整个project的所有commit (2)显示某个文件的所有commit 这是git log不添加参数的常规…

.Net MVC 使用Areas后存在相同Controller时报错的解决办法; 从上下文获取请求的Area名及Controller名

先来说个额外的问题&#xff1a;如何在请求上下文&#xff08;比如过滤器的中&#xff09;获取请求对应的Area和Controller 名字&#xff1f;&#xff08;假设请求上下文对象为 filterContext &#xff09;&#xff1a; 1. 获取Area名: (string)filterContext.RouteData.DataTo…

Windows下防火墙端口配置

在电脑或者服务器上部署某个应用后&#xff0c;如果需要对外提供服务可能就需要在主机防火墙上设置开启需要的端口&#xff0c;那么具体怎样操作呢 1.打开windows防火墙 2.设置防火墙入站规则 如下图“高级安全Windows Defender 防火墙”页面&#xff0c;点击左侧“入站规则”…

并联电容器交流耐压试验方法

对被试并联电容器两极进行充分放电。 检查电容器外观、 污秽等情况, 判断电容器是否满足试验要求状态。 用端接线将并联电容器两极短接连接湖北众拓高试工频耐压装置高压端, 外壳接地。 接线完成后经检查确认无误, 人员退出试验范围。 接入符合测试设备的工作电源&#xff0c;…

[Linux]进程间通信--管道

[Linux]进程间通信–管道 文章目录 [Linux]进程间通信--管道进程间通信的目的实现进程间通信的原理匿名管道匿名管道的通信原理系统接口管道特性管道的协同场景管道的大小 命名管道使用指令创建命名管道使用系统调用创建命名管道 进程间通信的目的 数据传输&#xff1a;一个进…