本课程来自
深度之眼,部分截图来自课程视频。
【第一章 线性代数】1.8SVD分解的证明
在线LaTeX公式编辑器
任务详解:
这节课主要介绍了矩阵的奇异值分解(SVD分解),SVD分解的应用,多元线性回归等知识点。
掌握目标:
了解svd分解证明过程,以及svd分解的算法流程
之前的课程描述的是方阵,对称阵的处理,对于一般矩阵是怎么化简的呢,就是下面的SVD分解的内容。
PS:用H或者T都是表示矩阵的转置,一个是复矩阵,一个实矩阵的写法,下面讨论的都是实矩阵,但参考书上针对复矩阵,所以用的H ,这里我们认为两个木有区别。
奇异值分解的证明过程有点复杂,虽然编程序的时候可以做调包侠,但是理解其来龙去脉是很有必要的。
1.矩阵的奇异值分解(SVD分解)
为了论述矩阵的奇异值与奇异值分解,需要下面的结论:
(1)设
A∈Crm×n(r>0),(这里m和n代表矩阵的行列,r是矩阵的秩)则
AHA是Hermite矩阵,(如果矩阵A不包含复数,那么
AH=AT)且其特征值均是非负实数;
这里小小证明一下(本来是上节证明的内容,偷懒没写,现在补上):
ATA写为:
xTATAx=(Ax)TAx
这里x是向量,A是矩阵,那么Ax就是一个向量,令
z=Ax,上面就
=zTz=∣∣z∣∣2≥0
因此可以断定
ATA是半正定的,他的特征值
λi≥0
(2)
rank(AHA)=rank(A);
证明:这里只要证明两者的解空间是一样的即可,因为上节讲解空间的时候有下面的结论
R(A)+N(A)=n
解空间N(A)一样,那么秩R(A)也就一样了,也就是要证明
ATAx=0和
Ax=0的解一样,就是x是前者的解也是后者的解。
分两种情况看:
第一种:x=0的时候,肯定是两个方程的解
第二种:对于
∀x=0,有:
ATAx=0,要把
AT去掉,不能两边同时乘
AT的逆矩阵,因为
AT不一定有逆矩阵。所以我们方程两边同时乘
xT,得:
xTATAx=0,即
(Ax)TAx=0,这里,由于x是向量,A是矩阵,Ax是一个向量
xTATAx相当于求Ax的模长,模长等于0就意味着向量Ax中的每一项都是0,也就是
ATAx=0与
Ax=0解是一样的(解空间一样),因此秩也就一样。
(3)设
A∈Crm×n,则
A=0的充要条件是
AHA=0.
奇异值的定义
定义4.11:
A∈Crm×n(r>0),
AHA的特征值为
λ1≥λ2≥…≥λr>λr+1=…=λn=0则称
σi=λi
(i=1,2,…,n)为A的奇异值;当A为零矩阵时,它的奇异值都是0。
说人话:根据定义可以得到
AHA的特征值有r个是大于0的,其他都是等于0的。于是有下面定理:
---------------------------------------------------------割你没商量------------------------------------------------------
定理4.16:设
A∈Crm×n(r>0),则存在m阶正交矩阵U和n阶正交矩阵V,使得
UHAV=[Σ000]
其中
Σ=diag(σ1,σ2,…,σr),而。
σi(i=1,2,…,r)为矩阵A的全部非零奇异值。注意这里的矩阵shape,
UH是n×m的,A是m×n,V是n×n,
UHAV是m×n的。
证明
证明:
AHA(写成
ATA是一样的,原因之前有讲,不啰嗦了)是对称阵(
(ATA)T=AT(AT)T=ATA,就是满足
AT=A),所以可以满足对角化的操作(一个对称阵A,可以找到正交方阵P,使得
PTAP=对角阵,当然由于P是正交方阵,所以有
PT=P−1,故
P−1AP=对角阵也成立),所以可以有下面的等式(为了和前面的不一样,这里就不用P,用V来表示咯,为什么,因为定理里面用的是V撒,V当然是正交矩阵了,复矩阵就叫酉矩阵):
VH(AHA)V=⎣⎡λ1⋱λn⎦⎤=[Σ2000](1)
根据奇异值的定理可知,从
λ1,...,λn这些个特征值中,有一些个是大于0,一些个是等于0的,即:
λ1≥λ2≥…≥λr>λr+1=…=λn=0,上式中的
Σ2=⎣⎡σ12⋱σr2⎦⎤=⎣⎡λ1⋱λr⎦⎤
Σ的shape是r*r的。
接下来将n×n的方阵V分两块:
V=[V1⋮V2],其中
V1∈Crn×r,V2∈Crn×(n−r)
等式(1)两边同时乘上V,由于V是正交
VVH=E,改写为:
AHAV=V[Σ2000](2)
由于
V=[V1⋮V2],等式2可以写为:
AHA[V1⋮V2]=[V1⋮V2][Σ2000]
两边展开:
[AHAV1⋮AHAV2]=[V1Σ2⋮0](3)
等式(3)中
⋮两边的东西都应该对应相等,所以有:
AHAV1=V1Σ2(4)
AHAV2=0(5)
等式(4)左右两边分别乘上
V1H得:
V1HAHAV1=Σ2(6)
等式(6)左右两边的左右两边同时乘上
Σ−1
Σ−1V1HAHAV1Σ−1=Σ−1Σ2Σ−1(7)
这里
Σ=⎣⎡σ1⋱σr⎦⎤是对角阵,所以
Σ−1=⎣⎡σ1−1⋱σr−1⎦⎤也是是对角阵,对角阵的转置和它本身一样(
AT=A),所以:
Σ−1=(Σ−1)T=(Σ−1)H(8)
根据公式(8),等式(7)可以写为:
(Σ−1)TV1HAHAV1Σ−1=Σ−1Σ2Σ−1
把前面几个的转置提取到括号外(位置要变化),
Σ−1Σ2Σ−1=E,这里写为
Ir(r是维度),得:
(AV1Σ−1)T(AV1Σ−1)=Ir(9)
等式(5)左右两边分别乘上
V2H得:
V2HAHAV2=0
(AV2)HAV2=0(10)
等式(9)可以看做是一个矩阵(
AV2)的转置乘以矩阵本身等于0的形式。根据开篇的结论三(设
A∈Crm×n,则
A=0的充要条件是
AHA=0.)可知:
AV2=0(11)
到这个地方,我们分别得到了两个等式(9)(11)。
对于等式(9),令
U1=AV1Σ−1,则有:
U1HU1=Ir(12)
再次看shape,A是m×n,
V1是n×r,
Σ−1是r×r的,所以
U1是m×r的。如果记
U1是由r个向量
u1,u2,...,ur构成,上式(12)可以写成:
U1HU1=⎣⎢⎡u1T⋮urT⎦⎥⎤[u1⋯ur]=Ir(13)
等式(13)中的左边展开后的每一项
uiTuj满足:
{uiTuj=1i=j,uiTuj=0i=j
因此说构成的
U1的r个向量是两两正交的单位向量。由于
U1的shape是m×r,这r个向量
ui∈ℜm(说人话:r是m维的列向量),这里可以根据定理,直接把r维向量扩充到m维上。
---------------------------------------------------------割你没商量------------------------------------------------------
定理可视化实例补充:
二维向量
⎣⎡100⎦⎤⎣⎡010⎦⎤可以扩充为三维向量:
⎣⎡100⎦⎤⎣⎡010⎦⎤⎣⎡001⎦⎤
---------------------------------------------------------割你没商量------------------------------------------------------
U1扩充为
Cm(说人话:m维)的标准正交基,把后来扩展的向量记为:
ur+1,...,um,并构造成矩阵:
U2=(ur+1,...,um),则:
U=[U1⋮U2]=(u1,u2,⋯,ur,ur+1,⋯,um)
U是m阶酉(正交)矩阵,且有:
U1HU1=Ir,U2HU1=0(15)
下面U构造好后,就可以开始验证要证明的定理
UHAV啦,因为
V=[V1⋮V2]:
UHAV=UH[AV1⋮AV2](14)
由
U=[U1⋮U2]可以知道:
UH=[U1HU2H];
由
U1的设定
U1=AV1Σ−1,两边的右边同时乘以
Σ,得
U1Σ=AV1;
由等式(11);
以上三个东西带入等式(14)
UHAV=[U1HU2H][U1Σ⋮0]=[U1HU1ΣU2HU1Σ00]
把等式(15)带入
UHAV=[Σ000]
到这里证明就好了,但是上面的等式还可以在等式的两边左右分别乘以
U,VH。
UUHAVVH=U[Σ000]VH
单位阵退散后变成:
A=U[Σ000]VH
例子
求矩阵
A=⎣⎡100010110⎦⎤的奇异值分解。
解:
B=ATA=⎣⎡101011112⎦⎤的特征值是
λ1=3,λ2=1,λ3=0,对应的特征向量依次为:
ξ1=⎣⎡112⎦⎤,ξ2=⎣⎡1−10⎦⎤,ξ1=⎣⎡11−1⎦⎤
Σ=[3
001]
ATA是对称矩阵,因此其特征向量是两两正交的,把上面的三个
ξ除以模长,得到
V=⎣⎢⎡6
16
16
22
1−2
103
13
1−3
1⎦⎥⎤
根据公式
U1=AV1Σ−1计算
U1,其中A在题目已经给了,
V=[V1⋮V2],其中
V1∈Crn×r,V2∈Crn×(n−r),由于R(A)=2,所以r=2,取V的前面两列,
V1=⎣⎢⎡6
16
16
22
1−2
10⎦⎥⎤,
Σ−1=[3
1001],最后算出来:
U1=AV1Σ−1=⎣⎡2
12
102
1−2
10⎦⎤
这里只构造出
U1,还要弄
U2,使得
U=[U1⋮U2]
取
U2=⎣⎡001⎦⎤
U=[U1⋮U2]=⎣⎡2
12
102
1−2
10001⎦⎤
则A的奇异值分解为:
A=U⎣⎡3
00010000⎦⎤VT