线代:1.8SVD分解的证明


本课程来自 深度之眼,部分截图来自课程视频。
【第一章 线性代数】1.8SVD分解的证明
在线LaTeX公式编辑器

任务详解:

这节课主要介绍了矩阵的奇异值分解(SVD分解),SVD分解的应用,多元线性回归等知识点。
掌握目标:
了解svd分解证明过程,以及svd分解的算法流程

之前的课程描述的是方阵,对称阵的处理,对于一般矩阵是怎么化简的呢,就是下面的SVD分解的内容。
PS:用H或者T都是表示矩阵的转置,一个是复矩阵,一个实矩阵的写法,下面讨论的都是实矩阵,但参考书上针对复矩阵,所以用的H ,这里我们认为两个木有区别。
奇异值分解的证明过程有点复杂,虽然编程序的时候可以做调包侠,但是理解其来龙去脉是很有必要的。

1.矩阵的奇异值分解(SVD分解)

为了论述矩阵的奇异值与奇异值分解,需要下面的结论:
(1)设 A ∈ C r m × n ( r > 0 ) A\in C_r^{m\times n}(r>0) ACrm×n(r>0),(这里m和n代表矩阵的行列,r是矩阵的秩)则 A H A A^HA AHA是Hermite矩阵,(如果矩阵A不包含复数,那么 A H = A T A^H=A^T AH=AT)且其特征值均是非负实数;

这里小小证明一下(本来是上节证明的内容,偷懒没写,现在补上):
A T A A^TA ATA写为: x T A T A x = ( A x ) T A x x^TA^TAx=(Ax)^TAx xTATAx=(Ax)TAx
这里x是向量,A是矩阵,那么Ax就是一个向量,令 z = A x z=Ax z=Ax,上面就 = z T z = ∣ ∣ z ∣ ∣ 2 ≥ 0 =z^Tz=||z||^2≥0 =zTz=z20
因此可以断定 A T A A^TA ATA是半正定的,他的特征值 λ i ≥ 0 \lambda_i≥0 λi0

(2) r a n k ( A H A ) = r a n k ( A ) rank(A^HA)=rank(A) rank(AHA)=rank(A)
证明:这里只要证明两者的解空间是一样的即可,因为上节讲解空间的时候有下面的结论
R ( A ) + N ( A ) = n R(A)+N(A)=n R(A)+N(A)=n
解空间N(A)一样,那么秩R(A)也就一样了,也就是要证明
A T A x = 0 A^TAx=0 ATAx=0 A x = 0 Ax=0 Ax=0的解一样,就是x是前者的解也是后者的解。
分两种情况看:
第一种:x=0的时候,肯定是两个方程的解
第二种:对于 ∀ x ≠ 0 \forall x\neq0 x=0,有:
A T A x = 0 A^TAx=0 ATAx=0,要把 A T A^T AT去掉,不能两边同时乘 A T A^T AT的逆矩阵,因为 A T A^T AT不一定有逆矩阵。所以我们方程两边同时乘 x T x^T xT,得: x T A T A x = 0 x^TA^TAx=0 xTATAx=0,即 ( A x ) T A x = 0 (Ax)^TAx=0 (Ax)TAx=0,这里,由于x是向量,A是矩阵,Ax是一个向量 x T A T A x x^TA^TAx xTATAx相当于求Ax的模长,模长等于0就意味着向量Ax中的每一项都是0,也就是 A T A x = 0 A^TAx=0 ATAx=0 A x = 0 Ax=0 Ax=0解是一样的(解空间一样),因此秩也就一样。
(3)设 A ∈ C r m × n A\in C_r^{m\times n} ACrm×n,则 A = 0 A=0 A=0的充要条件是 A H A = 0 A^HA=0 AHA=0.

奇异值的定义

定义4.11 A ∈ C r m × n ( r > 0 ) A\in C_r^{m\times n}(r>0) ACrm×n(r>0) A H A A^HA AHA的特征值为 λ 1 ≥ λ 2 ≥ … ≥ λ r > λ r + 1 = … = λ n = 0 \lambda_1≥\lambda_2≥…≥\lambda_r>\lambda_{r+1}=…=\lambda_n=0 λ1λ2λr>λr+1==λn=0则称 σ i = λ i ( i = 1 , 2 , … , n ) \sigma_i=\sqrt{\lambda_i}(i=1,2,…,n) σi=λi (i=1,2,,n)为A的奇异值;当A为零矩阵时,它的奇异值都是0。
说人话:根据定义可以得到 A H A A^HA AHA的特征值有r个是大于0的,其他都是等于0的。于是有下面定理:

---------------------------------------------------------割你没商量------------------------------------------------------
定理4.16:设 A ∈ C r m × n ( r > 0 ) A\in C_r^{m\times n}(r>0) ACrm×n(r>0),则存在m阶正交矩阵U和n阶正交矩阵V,使得
U H A V = [ Σ 0 0 0 ] U^HAV=\begin{bmatrix} \Sigma &0 \\ 0 & 0 \end{bmatrix} UHAV=[Σ000]
其中 Σ = d i a g ( σ 1 , σ 2 , … , σ r ) \Sigma=diag(\sigma_1,\sigma_2,…,\sigma_r) Σ=diag(σ1,σ2,,σr),而。 σ i ( i = 1 , 2 , … , r ) \sigma_i(i=1,2,…,r) σi(i=1,2,,r)为矩阵A的全部非零奇异值。注意这里的矩阵shape, U H U^H UH是n×m的,A是m×n,V是n×n, U H A V U^HAV UHAV是m×n的。

证明

证明 A H A A^HA AHA(写成 A T A A^TA ATA是一样的,原因之前有讲,不啰嗦了)是对称阵( ( A T A ) T = A T ( A T ) T = A T A (A^TA)^T=A^T(A^T)^T=A^TA (ATA)T=AT(AT)T=ATA,就是满足 A T = A A^T=A AT=A),所以可以满足对角化的操作(一个对称阵A,可以找到正交方阵P,使得 P T A P = 对 角 阵 P^TAP=对角阵 PTAP=,当然由于P是正交方阵,所以有 P T = P − 1 P^T=P^{-1} PT=P1,故 P − 1 A P = 对 角 阵 P^{-1}AP=对角阵 P1AP=也成立),所以可以有下面的等式(为了和前面的不一样,这里就不用P,用V来表示咯,为什么,因为定理里面用的是V撒,V当然是正交矩阵了,复矩阵就叫酉矩阵):
V H ( A H A ) V = [ λ 1 ⋱ λ n ] = [ Σ 2 0 0 0 ] (1) V^H(A^HA)V=\begin{bmatrix} \lambda_1 && \\ &\ddots&\\ &&&\lambda_n \end{bmatrix}=\begin{bmatrix} \Sigma^2 &0 \\ 0 & 0 \end{bmatrix} \tag{1} VH(AHA)V=λ1λn=[Σ2000](1)
根据奇异值的定理可知,从 λ 1 , . . . , λ n \lambda_1,...,\lambda_n λ1,...,λn这些个特征值中,有一些个是大于0,一些个是等于0的,即: λ 1 ≥ λ 2 ≥ … ≥ λ r > λ r + 1 = … = λ n = 0 \lambda_1≥\lambda_2≥…≥\lambda_r>\lambda_{r+1}=…=\lambda_n=0 λ1λ2λr>λr+1==λn=0,上式中的 Σ 2 = [ σ 1 2 ⋱ σ r 2 ] = [ λ 1 ⋱ λ r ] \Sigma^2=\begin{bmatrix} \sigma_1^2 && \\ &\ddots&\\ &&&\sigma_r^2 \end{bmatrix}=\begin{bmatrix} \lambda_1 && \\ &\ddots&\\ &&&\lambda_r \end{bmatrix} Σ2=σ12σr2=λ1λr
Σ \Sigma Σ的shape是r*r的。
接下来将n×n的方阵V分两块: V = [ V 1 ⋮ V 2 ] V=[V_1\vdots V_2] V=[V1V2],其中 V 1 ∈ C r n × r , V 2 ∈ C r n × ( n − r ) V_1\in C_r^{n\times r},V_2\in C_r^{n\times (n-r)} V1Crn×r,V2Crn×(nr)
等式(1)两边同时乘上V,由于V是正交 V V H = E VV^H=E VVH=E,改写为:
A H A V = V [ Σ 2 0 0 0 ] (2) A^HAV=V\begin{bmatrix} \Sigma^2 &0 \\ 0 & 0 \end{bmatrix} \tag{2} AHAV=V[Σ2000](2)
由于 V = [ V 1 ⋮ V 2 ] V=[V_1\vdots V_2] V=[V1V2],等式2可以写为:
A H A [ V 1 ⋮ V 2 ] = [ V 1 ⋮ V 2 ] [ Σ 2 0 0 0 ] A^HA[V_1\vdots V_2]=[V_1\vdots V_2]\begin{bmatrix} \Sigma^2 &0 \\ 0 & 0 \end{bmatrix} AHA[V1V2]=[V1V2][Σ2000]
两边展开:
[ A H A V 1 ⋮ A H A V 2 ] = [ V 1 Σ 2 ⋮ 0 ] (3) [A^HAV_1\vdots A^HAV_2]=[V_1\Sigma^2\vdots 0]\tag{3} [AHAV1AHAV2]=[V1Σ20](3)
等式(3)中 ⋮ \vdots 两边的东西都应该对应相等,所以有:
A H A V 1 = V 1 Σ 2 (4) A^HAV_1=V_1\Sigma^2\tag{4} AHAV1=V1Σ2(4)
A H A V 2 = 0 (5) A^HAV_2=0\tag{5} AHAV2=0(5)
等式(4)左右两边分别乘上 V 1 H V_1^H V1H得:
V 1 H A H A V 1 = Σ 2 (6) V_1^HA^HAV_1=\Sigma^2\tag{6} V1HAHAV1=Σ2(6)
等式(6)左右两边的左右两边同时乘上 Σ − 1 \Sigma^{-1} Σ1
Σ − 1 V 1 H A H A V 1 Σ − 1 = Σ − 1 Σ 2 Σ − 1 (7) \Sigma^{-1}V_1^HA^HAV_1\Sigma^{-1}=\Sigma^{-1}\Sigma^2\Sigma^{-1}\tag{7} Σ1V1HAHAV1Σ1=Σ1Σ2Σ1(7)
这里 Σ = [ σ 1 ⋱ σ r ] \Sigma=\begin{bmatrix} \sigma_1 && \\ &\ddots&\\ &&&\sigma_r \end{bmatrix} Σ=σ1σr是对角阵,所以 Σ − 1 = [ σ 1 − 1 ⋱ σ r − 1 ] \Sigma^{-1}=\begin{bmatrix} \sigma_1^{-1} && \\ &\ddots&\\ &&&\sigma_r^{-1} \end{bmatrix} Σ1=σ11σr1也是是对角阵,对角阵的转置和它本身一样( A T = A A^T=A AT=A),所以:
Σ − 1 = ( Σ − 1 ) T = ( Σ − 1 ) H (8) \Sigma^{-1}=(\Sigma^{-1})^T=(\Sigma^{-1})^H\tag{8} Σ1=(Σ1)T=(Σ1)H(8)
根据公式(8),等式(7)可以写为:
( Σ − 1 ) T V 1 H A H A V 1 Σ − 1 = Σ − 1 Σ 2 Σ − 1 (\Sigma^{-1})^TV_1^HA^HAV_1\Sigma^{-1}=\Sigma^{-1}\Sigma^2\Sigma^{-1} (Σ1)TV1HAHAV1Σ1=Σ1Σ2Σ1
把前面几个的转置提取到括号外(位置要变化), Σ − 1 Σ 2 Σ − 1 = E \Sigma^{-1}\Sigma^2\Sigma^{-1}=E Σ1Σ2Σ1=E,这里写为 I r I_r Ir(r是维度),得:
( A V 1 Σ − 1 ) T ( A V 1 Σ − 1 ) = I r (9) (AV_1\Sigma^{-1})^T(AV_1\Sigma^{-1})=I_r\tag{9} (AV1Σ1)T(AV1Σ1)=Ir(9)
等式(5)左右两边分别乘上 V 2 H V_2^H V2H得:
V 2 H A H A V 2 = 0 V_2^HA^HAV_2=0 V2HAHAV2=0
( A V 2 ) H A V 2 = 0 (10) (AV_2)^HAV_2=0\tag{10} (AV2)HAV2=0(10)
等式(9)可以看做是一个矩阵( A V 2 AV_2 AV2)的转置乘以矩阵本身等于0的形式。根据开篇的结论三(设 A ∈ C r m × n A\in C_r^{m\times n} ACrm×n,则 A = 0 A=0 A=0的充要条件是 A H A = 0 A^HA=0 AHA=0.)可知:
A V 2 = 0 (11) AV_2=0\tag{11} AV2=0(11)
到这个地方,我们分别得到了两个等式(9)(11)。
对于等式(9),令 U 1 = A V 1 Σ − 1 U_1=AV_1\Sigma^{-1} U1=AV1Σ1,则有:
U 1 H U 1 = I r (12) U_1^HU_1=I_r\tag{12} U1HU1=Ir(12)
再次看shape,A是m×n, V 1 V_1 V1是n×r, Σ − 1 \Sigma^{-1} Σ1是r×r的,所以 U 1 U_1 U1是m×r的。如果记 U 1 U_1 U1是由r个向量 u 1 , u 2 , . . . , u r u_1,u_2,...,u_r u1,u2,...,ur构成,上式(12)可以写成:
U 1 H U 1 = [ u 1 T ⋮ u r T ] [ u 1 ⋯ u r ] = I r (13) U_1^HU_1=\begin{bmatrix} u_1^T \\ \vdots\\ u_r^T \end{bmatrix}\begin{bmatrix} u_1&\cdots&u_r \\ \end{bmatrix}=I_r\tag{13} U1HU1=u1TurT[u1ur]=Ir(13)
等式(13)中的左边展开后的每一项 u i T u j u_i^Tu_j uiTuj满足:
{ u i T u j = 1 i = j , u i T u j = 0 i ≠ j \left\{\begin{matrix}u_i^Tu_j=1\quad i=j,\\u_i^Tu_j=0\quad i\neq j\end{matrix}\right. {uiTuj=1i=j,uiTuj=0i=j
因此说构成的 U 1 U_1 U1的r个向量是两两正交的单位向量。由于 U 1 U_1 U1的shape是m×r,这r个向量 u i ∈ ℜ m u_i\in\real^m uim(说人话:r是m维的列向量),这里可以根据定理,直接把r维向量扩充到m维上。
---------------------------------------------------------割你没商量------------------------------------------------------
定理可视化实例补充:
二维向量 [ 1 0 0 ] [ 0 1 0 ] \begin{bmatrix}1 \\ 0\\0 \end{bmatrix}\begin{bmatrix}0 \\ 1\\0 \end{bmatrix} 100010可以扩充为三维向量: [ 1 0 0 ] [ 0 1 0 ] [ 0 0 1 ] \begin{bmatrix}1 \\ 0\\0 \end{bmatrix}\begin{bmatrix}0 \\ 1\\0 \end{bmatrix}\begin{bmatrix}0 \\ 0\\1 \end{bmatrix} 100010001
---------------------------------------------------------割你没商量------------------------------------------------------
U 1 U_1 U1扩充为 C m C^m Cm(说人话:m维)的标准正交基,把后来扩展的向量记为: u r + 1 , . . . , u m u_{r+1},...,u_m ur+1,...,um,并构造成矩阵: U 2 = ( u r + 1 , . . . , u m ) U_2=(u_{r+1},...,u_m) U2=(ur+1,...,um),则:
U = [ U 1 ⋮ U 2 ] = ( u 1 , u 2 , ⋯   , u r , u r + 1 , ⋯   , u m ) U=[U_1\vdots U_2]=(u_1,u_2,\cdots,u_r,u_{r+1},\cdots,u_m) U=[U1U2]=(u1,u2,,ur,ur+1,,um)
U是m阶酉(正交)矩阵,且有:
U 1 H U 1 = I r , U 2 H U 1 = 0 (15) U_1^HU_1=I_r,U_2^HU_1=0\tag{15} U1HU1=Ir,U2HU1=0(15)

下面U构造好后,就可以开始验证要证明的定理 U H A V U^HAV UHAV啦,因为 V = [ V 1 ⋮ V 2 ] V=[V_1\vdots V_2] V=[V1V2]
U H A V = U H [ A V 1 ⋮ A V 2 ] (14) U^HAV=U^H[AV_1\vdots AV_2]\tag{14} UHAV=UH[AV1AV2](14)
U = [ U 1 ⋮ U 2 ] U=[U_1\vdots U_2] U=[U1U2]可以知道: U H = [ U 1 H U 2 H ] U^H=\begin{bmatrix}U_1^H \\ U_2^H \end{bmatrix} UH=[U1HU2H]
U 1 U_1 U1的设定 U 1 = A V 1 Σ − 1 U_1=AV_1\Sigma^{-1} U1=AV1Σ1,两边的右边同时乘以 Σ \Sigma Σ,得 U 1 Σ = A V 1 U_1\Sigma=AV_1 U1Σ=AV1
由等式(11);
以上三个东西带入等式(14)
U H A V = [ U 1 H U 2 H ] [ U 1 Σ ⋮ 0 ] = [ U 1 H U 1 Σ 0 U 2 H U 1 Σ 0 ] U^HAV=\begin{bmatrix}U_1^H \\ U_2^H \end{bmatrix}[U_1\Sigma\vdots 0]=\begin{bmatrix}U_1^HU_1\Sigma&0 \\ U_2^HU_1\Sigma&0 \end{bmatrix} UHAV=[U1HU2H][U1Σ0]=[U1HU1ΣU2HU1Σ00]
把等式(15)带入
U H A V = [ Σ 0 0 0 ] U^HAV=\begin{bmatrix} \Sigma &0 \\ 0 & 0 \end{bmatrix} UHAV=[Σ000]
到这里证明就好了,但是上面的等式还可以在等式的两边左右分别乘以 U , V H U,V^H U,VH
U U H A V V H = U [ Σ 0 0 0 ] V H UU^HAVV^H=U\begin{bmatrix} \Sigma &0 \\ 0 & 0 \end{bmatrix}V^H UUHAVVH=U[Σ000]VH
单位阵退散后变成:
A = U [ Σ 0 0 0 ] V H A=U\begin{bmatrix} \Sigma &0 \\ 0 & 0 \end{bmatrix}V^H A=U[Σ000]VH

例子

求矩阵 A = [ 1 0 1 0 1 1 0 0 0 ] A=\begin{bmatrix} 1&0&1 \\ 0 & 1& 1 \\ 0 & 0& 0 \end{bmatrix} A=100010110的奇异值分解。
解: B = A T A = [ 1 0 1 0 1 1 1 1 2 ] B=A^TA=\begin{bmatrix} 1&0&1 \\ 0 & 1& 1 \\ 1 & 1& 2 \end{bmatrix} B=ATA=101011112的特征值是 λ 1 = 3 , λ 2 = 1 , λ 3 = 0 \lambda_1=3,\lambda_2=1,\lambda_3=0 λ1=3,λ2=1,λ3=0,对应的特征向量依次为:
ξ 1 = [ 1 1 2 ] , ξ 2 = [ 1 − 1 0 ] , ξ 1 = [ 1 1 − 1 ] \xi_1=\begin{bmatrix}1\\ 1 \\ 2\end{bmatrix},\xi_2=\begin{bmatrix}1\\ -1 \\ 0\end{bmatrix},\xi_1=\begin{bmatrix}1\\ 1 \\ -1\end{bmatrix} ξ1=112,ξ2=110,ξ1=111
Σ = [ 3 0 0 1 ] \Sigma=\begin{bmatrix} \sqrt{3} &0 \\ 0 &1 \end{bmatrix} Σ=[3 001]
A T A A^TA ATA是对称矩阵,因此其特征向量是两两正交的,把上面的三个 ξ \xi ξ除以模长,得到
V = [ 1 6 1 2 1 3 1 6 − 1 2 1 3 2 6 0 − 1 3 ] V=\begin{bmatrix} \frac{1}{\sqrt{6}}&\frac{1}{\sqrt{2}}&\frac{1}{\sqrt{3}} \\ \frac{1}{\sqrt{6}} & -\frac{1}{\sqrt{2}}& \frac{1}{\sqrt{3}}\\ \frac{2}{\sqrt{6}} & 0& -\frac{1}{\sqrt{3}} \end{bmatrix} V=6 16 16 22 12 103 13 13 1
根据公式 U 1 = A V 1 Σ − 1 U_1=AV_1\Sigma^{-1} U1=AV1Σ1计算 U 1 U_1 U1,其中A在题目已经给了, V = [ V 1 ⋮ V 2 ] V=[V_1\vdots V_2] V=[V1V2],其中 V 1 ∈ C r n × r , V 2 ∈ C r n × ( n − r ) V_1\in C_r^{n\times r},V_2\in C_r^{n\times (n-r)} V1Crn×r,V2Crn×(nr),由于R(A)=2,所以r=2,取V的前面两列, V 1 = [ 1 6 1 2 1 6 − 1 2 2 6 0 ] V_1=\begin{bmatrix} \frac{1}{\sqrt{6}}&\frac{1}{\sqrt{2}} \\ \frac{1}{\sqrt{6}} & -\frac{1}{\sqrt{2}}\\ \frac{2}{\sqrt{6}} & 0 \end{bmatrix} V1=6 16 16 22 12 10 Σ − 1 = [ 1 3 0 0 1 ] \Sigma^{-1}=\begin{bmatrix} \frac{1}{\sqrt{3}} &0 \\ 0 &1 \end{bmatrix} Σ1=[3 1001],最后算出来:
U 1 = A V 1 Σ − 1 = [ 1 2 1 2 1 2 − 1 2 0 0 ] U_1=AV_1\Sigma^{-1}=\begin{bmatrix} \frac{1}{\sqrt{2}} &\frac{1}{\sqrt{2}} \\ \frac{1}{\sqrt{2}} &-\frac{1}{\sqrt{2}}\\ 0&0 \end{bmatrix} U1=AV1Σ1=2 12 102 12 10
这里只构造出 U 1 U_1 U1,还要弄 U 2 U_2 U2,使得 U = [ U 1 ⋮ U 2 ] U=[U_1\vdots U_2] U=[U1U2]
U 2 = [ 0 0 1 ] U_2=\begin{bmatrix}0\\ 0 \\ 1\end{bmatrix} U2=001
U = [ U 1 ⋮ U 2 ] = [ 1 2 1 2 0 1 2 − 1 2 0 0 0 1 ] U=[U_1\vdots U_2]=\begin{bmatrix} \frac{1}{\sqrt{2}}&\frac{1}{\sqrt{2}}&0 \\ \frac{1}{\sqrt{2}} & -\frac{1}{\sqrt{2}}&0\\ 0& 0& 1 \end{bmatrix} U=[U1U2]=2 12 102 12 10001
则A的奇异值分解为:
A = U [ 3 0 0 0 1 0 0 0 0 ] V T A=U\begin{bmatrix} \sqrt{3}&0&0 \\ 0 & 1&0\\ 0& 0& 0 \end{bmatrix}V^T A=U3 00010000VT

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

oldmao_2000

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值