线代: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) ,(这里m和n代表矩阵的行列,r是矩阵的秩)则 A H A A^HA 是Hermite矩阵,(如果矩阵A不包含复数,那么 A H = A T A^H=A^T )且其特征值均是非负实数;

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

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

奇异值的定义

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

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

证明

证明 A H A A^HA (写成 A T A A^TA 是一样的,原因之前有讲,不啰嗦了)是对称阵( ( A T A ) T = A T ( A T ) T = A T A (A^TA)^T=A^T(A^T)^T=A^TA ,就是满足 A T = A A^T=A ),所以可以满足对角化的操作(一个对称阵A,可以找到正交方阵P,使得 P T A P = P^TAP=对角阵 ,当然由于P是正交方阵,所以有 P T = P 1 P^T=P^{-1} ,故 P 1 A P = P^{-1}AP=对角阵 也成立),所以可以有下面的等式(为了和前面的不一样,这里就不用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}
根据奇异值的定理可知,从 λ 1 , . . . , λ n \lambda_1,...,\lambda_n 这些个特征值中,有一些个是大于0,一些个是等于0的,即: λ 1 λ 2 λ r > λ r + 1 = = λ n = 0 \lambda_1≥\lambda_2≥…≥\lambda_r>\lambda_{r+1}=…=\lambda_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}
Σ \Sigma 的shape是r*r的。
接下来将n×n的方阵V分两块: V = [ V 1 V 2 ] V=[V_1\vdots V_2] ,其中 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)}
等式(1)两边同时乘上V,由于V是正交 V V H = E VV^H=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}
由于 V = [ V 1 V 2 ] V=[V_1\vdots V_2] ,等式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}
两边展开:
[ 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}
等式(3)中 \vdots 两边的东西都应该对应相等,所以有:
A H A V 1 = V 1 Σ 2 (4) A^HAV_1=V_1\Sigma^2\tag{4}
A H A V 2 = 0 (5) A^HAV_2=0\tag{5}
等式(4)左右两边分别乘上 V 1 H V_1^H 得:
V 1 H A H A V 1 = Σ 2 (6) V_1^HA^HAV_1=\Sigma^2\tag{6}
等式(6)左右两边的左右两边同时乘上 Σ 1 \Sigma^{-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}
这里 Σ = [ σ 1 σ r ] \Sigma=\begin{bmatrix} \sigma_1 && \\ &\ddots&\\ &&&\sigma_r \end{bmatrix} 是对角阵,所以 Σ 1 = [ σ 1 1 σ r 1 ] \Sigma^{-1}=\begin{bmatrix} \sigma_1^{-1} && \\ &\ddots&\\ &&&\sigma_r^{-1} \end{bmatrix} 也是是对角阵,对角阵的转置和它本身一样( A T = A A^T=A ),所以:
Σ 1 = ( Σ 1 ) T = ( Σ 1 ) H (8) \Sigma^{-1}=(\Sigma^{-1})^T=(\Sigma^{-1})^H\tag{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 Σ 2 Σ 1 = E \Sigma^{-1}\Sigma^2\Sigma^{-1}=E ,这里写为 I r I_r (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}
等式(5)左右两边分别乘上 V 2 H V_2^H 得:
V 2 H A H A V 2 = 0 V_2^HA^HAV_2=0
( A V 2 ) H A V 2 = 0 (10) (AV_2)^HAV_2=0\tag{10}
等式(9)可以看做是一个矩阵( A V 2 AV_2 )的转置乘以矩阵本身等于0的形式。根据开篇的结论三(设 A C r m × n A\in C_r^{m\times n} ,则 A = 0 A=0 的充要条件是 A H A = 0 A^HA=0 .)可知:
A V 2 = 0 (11) AV_2=0\tag{11}
到这个地方,我们分别得到了两个等式(9)(11)。
对于等式(9),令 U 1 = A V 1 Σ 1 U_1=AV_1\Sigma^{-1} ,则有:
U 1 H U 1 = I r (12) U_1^HU_1=I_r\tag{12}
再次看shape,A是m×n, V 1 V_1 是n×r, Σ 1 \Sigma^{-1} 是r×r的,所以 U 1 U_1 是m×r的。如果记 U 1 U_1 是由r个向量 u 1 , u 2 , . . . , u r u_1,u_2,...,u_r 构成,上式(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}
等式(13)中的左边展开后的每一项 u i T u j u_i^Tu_j 满足:
{ 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.
因此说构成的 U 1 U_1 的r个向量是两两正交的单位向量。由于 U 1 U_1 的shape是m×r,这r个向量 u i m u_i\in\real^m (说人话:r是m维的列向量),这里可以根据定理,直接把r维向量扩充到m维上。
---------------------------------------------------------割你没商量------------------------------------------------------
定理可视化实例补充:
二维向量 [ 1 0 0 ] [ 0 1 0 ] \begin{bmatrix}1 \\ 0\\0 \end{bmatrix}\begin{bmatrix}0 \\ 1\\0 \end{bmatrix} 可以扩充为三维向量: [ 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}
---------------------------------------------------------割你没商量------------------------------------------------------
U 1 U_1 扩充为 C m C^m (说人话:m维)的标准正交基,把后来扩展的向量记为: u r + 1 , . . . , u m u_{r+1},...,u_m ,并构造成矩阵: U 2 = ( u r + 1 , . . . , u m ) U_2=(u_{r+1},...,u_m) ,则:
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是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}

下面U构造好后,就可以开始验证要证明的定理 U H A V U^HAV 啦,因为 V = [ V 1 V 2 ] V=[V_1\vdots V_2]
U H A V = U H [ A V 1 A V 2 ] (14) U^HAV=U^H[AV_1\vdots AV_2]\tag{14}
U = [ U 1 U 2 ] U=[U_1\vdots U_2] 可以知道: U H = [ U 1 H U 2 H ] U^H=\begin{bmatrix}U_1^H \\ U_2^H \end{bmatrix}
U 1 U_1 的设定 U 1 = A V 1 Σ 1 U_1=AV_1\Sigma^{-1} ,两边的右边同时乘以 Σ \Sigma ,得 U 1 Σ = A V 1 U_1\Sigma=AV_1
由等式(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}
把等式(15)带入
U H A V = [ Σ 0 0 0 ] U^HAV=\begin{bmatrix} \Sigma &0 \\ 0 & 0 \end{bmatrix}
到这里证明就好了,但是上面的等式还可以在等式的两边左右分别乘以 U , V H U,V^H
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
单位阵退散后变成:
A = U [ Σ 0 0 0 ] V H A=U\begin{bmatrix} \Sigma &0 \\ 0 & 0 \end{bmatrix}V^H

例子

求矩阵 A = [ 1 0 1 0 1 1 0 0 0 ] A=\begin{bmatrix} 1&0&1 \\ 0 & 1& 1 \\ 0 & 0& 0 \end{bmatrix} 的奇异值分解。
解: 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} 的特征值是 λ 1 = 3 , λ 2 = 1 , λ 3 = 0 \lambda_1=3,\lambda_2=1,\lambda_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}
Σ = [ 3 0 0 1 ] \Sigma=\begin{bmatrix} \sqrt{3} &0 \\ 0 &1 \end{bmatrix}
A T A A^TA 是对称矩阵,因此其特征向量是两两正交的,把上面的三个 ξ \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}
根据公式 U 1 = A V 1 Σ 1 U_1=AV_1\Sigma^{-1} 计算 U 1 U_1 ,其中A在题目已经给了, V = [ V 1 V 2 ] V=[V_1\vdots V_2] ,其中 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)} ,由于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} Σ 1 = [ 1 3 0 0 1 ] \Sigma^{-1}=\begin{bmatrix} \frac{1}{\sqrt{3}} &0 \\ 0 &1 \end{bmatrix} ,最后算出来:
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}
这里只构造出 U 1 U_1 ,还要弄 U 2 U_2 ,使得 U = [ U 1 U 2 ] U=[U_1\vdots U_2]
U 2 = [ 0 0 1 ] U_2=\begin{bmatrix}0\\ 0 \\ 1\end{bmatrix}
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}
则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

发布了140 篇原创文章 · 获赞 35 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/oldmao_2001/article/details/103614310