原文在这里http://amsword.is-programmer.com/,转载只做记录方便自己温习,无疑侵权,如有侵权,可联系 [email protected] 马上删除!
这篇文章主要讨论一下对Singular value decomposition的理解。
SVD告诉我们,对于任何一个
m×n m×n的矩阵
A A,都存在这样的一个分解:
其中
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。并且有下面的式子成立
并且
如果说
σi σi都是不一样的,那么所有的
σi σi都是non-degenerate的,也就是说这个时候,
U U和
V V都是唯一确定的,在一定意义下。如果说
A A是一个实数矩阵,
U U和
V V可以也是实数的,这样的话,对于其唯一确定的理解是,差一个符号。
这里对于degenerate的讨论比较少,以后有时间补上。