原文在这里http://amsword.is-programmer.com/,转载只做记录方便自己温习,无疑侵权,如有侵权,可联系 jzwang@bjtu.edu.cn 马上删除!
这篇文章主要讨论一下对Singular value decomposition的理解。
SVD告诉我们,对于任何一个
m×n
m×n的矩阵
A
A,都存在这样的一个分解:
A=UΣV′
A=UΣV′
其中
U
U是
m×m
m×m的酉矩阵,也就是
UU∗=I
UU∗=I;
V
V是一个
n×n
n×n的酉矩阵;
Σ
Σ是一个
m×n
m×n的矩阵,非对角上的元素都是0,对角线上的元素都是非负的实数,不管
A
A是实数矩阵,还是酉空间中的矩阵,或者说有虚数元素。
定理告诉了我们总是存在一个这样的分解的,但并不是说这样的分解是唯一的。比如说有一个permutation matrix,
J
J。permutation matrix就是把单位矩阵的行进行重排列,或者列进行重排列。比如说把单位矩阵的第一行和第二行进行交换,第四行和第九行进行交换,交换后的矩阵就是一个permutaion matrix。一个矩阵
A
A,左乘一个
J
J,相当于对
A
A的相应行进行行交换。右乘的话,相当于列交换。两个
J
J相乘为一个单位矩阵,相当于对单位矩阵交换了两行之后,再交换一次,不变。
回到正题,任何一个
J
J拿到了之后,我们有下面的式子成立
A=(UJm)(JmΣJn)(VJn)′
A=(UJm)(JmΣJn)(VJn)′
UJm
UJm依然是一个酉矩阵,
VJn
VJn也依然是一个酉矩阵。这里
J
J的小角标表示
J
J的大小,是
m×m
m×m的还是
n×n
n×n的。如果说
m≥n
m≥n,并且
Jn
Jn是
Jm
Jm左上角的,
Jm
Jm右下角是一个单位阵,右上角和左下角都是0矩阵的话,那么
JmΣJn
JmΣJn依然也是一个对角阵。之前对
Jm
Jm和
Jn
Jn的描述,相当于是说,如果
Jm
Jm使得
Σ
Σ的第
i
i行和第
j
j行交换的话,那么
Jn
Jn应该使得
Σ
Σ的第
i
i列和第
j
j列进行交换。从而使得
JmΣJn
JmΣJn依然是一个非对角线上元素都是0的矩阵,相当于是将
Σ
Σ的对角线上的元素进行了一个重新排列。这是事实告诉我们,SVD的分解是不唯一的。
接下来再考虑一点,如果说
Σ
Σ唯一确定之后,这个
U
U和
V
V是否能够唯一确定的呢?我们再引入一个矩阵,用
Km
Km表示,是一个
m×m
m×m的对角方阵,对角线上的元素具有
eiϕ
eiϕ的形式,其中
ϕ
ϕ可是互相不相同。根据定义,我们有
KmK∗m=I
KmKm∗=I。那么
A=UKmK∗mΣKn(VKn)∗
A=UKmKm∗ΣKn(VKn)∗
其中
UKm
UKm和
VKn
VKn分别仍然是酉阵,如果说
Km
Km的对角线上第
i
i个元素和
Kn
Kn对角线上第
i
i个元素相同的话,那么
K∗mΣKn=Σ
Km∗ΣKn=Σ。也就是说,如果
U
U的第
i
i列乘以
eiϕ
eiϕ,并且
V
V的第
i
i列也乘以
eiϕ
eiϕ,那么结论依然成立。
然后,我们继续疑问:如果
Σ
Σ给定,并且允许
U
U和
V
V差一个
eiϕ
eiϕ的话,那么
U
U和
V
V是否能够唯一确定?
这一种情况,比较麻烦。如果说
σi
σi都是non-degenerate的话,那么是唯一确定的。否则的话,依然不能够唯一确定。
对degenerate的定义是这样子的。如果
σi
σi是degenerate的,那么它有两个互相独立的singular vector。
在这里补充一下,singular value就是
σi
σi,而
ui
ui和
vi
vi分别是singular vector,其中要求
i<=minm,n
i<=minm,n。并且有下面的式子成立
Avi=σui
Avi=σui
并且
A∗ui=σvi
A∗ui=σvi
如果说
σi
σi都是不一样的,那么所有的
σi
σi都是non-degenerate的,也就是说这个时候,
U
U和
V
V都是唯一确定的,在一定意义下。如果说
A
A是一个实数矩阵,
U
U和
V
V可以也是实数的,这样的话,对于其唯一确定的理解是,差一个符号。
这里对于degenerate的讨论比较少,以后有时间补上。