奇異值分解
奇異值分解
奇異值分解(Singular Value Decomposition)是線性代數中一種重要的矩陣分解,是矩陣分析中正規矩陣酉對角化的推廣。
奇異值分解在某些方面與對稱矩陣或Hermite矩陣基於特徵向量的對角化類似。然而這兩種矩陣分解儘管有其相關性,但還是有明顯的不同。對稱陣特徵向量分解的基礎是譜分析,而奇異值分解則是譜分析理論在任意矩陣上的推廣。
假設是一個階矩陣,其中的元素全部屬於域 ,也就是 實數域或複數域。如此則存在一個分解使得
,
其中是階酉矩陣;是半正定階對角矩陣;而,即的共軛轉置,是階酉矩陣。這樣的分解就稱作的奇異值分解。對角線上的元素,其中即為的奇異值。
常見的做法是為了奇異值由大而小排列。如此Σ便能由M唯一確定了。(雖然U和V仍然不能確定。)
直觀的解釋
在矩陣的奇異值分解中
V的列(columns)組成一套對M的正交"輸出"的基向量。這些向量是的特徵向量。
對角線上的元素是奇異值,可視為是在輸入與輸出間進行的標量的"膨脹控制"。這些是及的奇異值,並與和的行向量相對應。
奇異值和奇異向量, 以及他們與奇異值分解的關係
一個非負實數是的一個奇異值僅當存在Km 的單位向量u和Kn的單位向量v如下:
其中向量u 和v分別為σ的左奇異向量和右奇異向量。
對於任意的奇異值分解
矩陣Σ的對角線上的元素等於M的奇異值. U和V的列分別是奇異值中的左、右奇異向量。因此,上述定理表明:
一個的矩陣至多有個不同的奇異值。
總是可以找到在Km 的一個正交基U,組成M的左奇異向量。
總是可以找到和Kn的一個正交基V,組成M的右奇異向量。
如果一個奇異值中可以找到兩個左(或右)奇異向量是線性相關的,則稱為退化。
非退化的奇異值具有唯一的左、右奇異向量,取決於所乘的單位相位因子eiφ(根據實際信號)。因此,如果M的所有奇異值都是非退化且非零,則它的奇異值分解是唯一的,因為U中的一列要乘以一個單位相位因子且同時V中相應的列也要乘以同一個相位因子。
根據定義,退化的奇異值具有不唯一的奇異向量。因為,如果u1和u2為奇異值σ的兩個左奇異向量,則兩個向量的任意規範線性組合也是奇異值σ一個左奇異向量,類似的,右奇異向量也具有相同的性質。因此,如果M 具有退化的奇異值,則它的奇異值分解是不唯一的。
因為U 和V 向量都是單位化的向量, 我們知道U的列向量u1,...,um組成了K空間的一組標準正交基。同樣,V的列向量v1,...,vn也組成了K空間的一組標準正交基(根據向量空間的標準點積法則).
線性變換T: K → K,把向量Nx變換為Mx。考慮到這些標準正交基,這個變換描述起來就很簡單了: T(vi) = σi ui, for i = 1,...,min(m,n), 其中σi 是對角陣Σ中的第i個元素; 當時,。
這樣,SVD理論的幾何意義就可以做如下的歸納:對於每一個線性映射T: K → K,T把K的第i個基向量映射為K的第i個基向量的非負倍數,然後將餘下的基向量映射為零向量。對照這些基向量,映射T就可以表示為一個非負對角陣。
1. 矩陣范數的概念 設,定義一個實值函數,若滿足:
(1) 非負性:,且當且僅當;
(2) 齊次性:;
(3) 三角不等式:;
(4) 相容性:
則稱為的矩陣范數。
定理2:由向量的1-范數、2-范數和∞-范數分別誘導出的矩陣范數分別是
通常依次稱為列和范數、譜范數和行和范數。
定理3:譜范數和F-范數都是酉不變范數,即對於任意酉矩陣P和Q,有。
奇異值分解可以被用來計算矩陣的偽逆。若矩陣的奇異值分解為,
那麼 的偽逆為其中是的偽逆,並將其主對角線上每個非零元素都求倒數之後再轉置得到的。求偽逆通常可以用來求解線性最小平方、最小二乘法問題。
把頻率選擇性衰落通道進行分解.
奇異值分解在統計中的主要應用為主成分分析(PCA),種數據分析方法,用來找出大量數據中所隱含的“模式”,它可以用在模式識別,數據壓縮等方面。PCA演演算法的作用是把數據集映射到低維空間中去。數據集的特徵值(在SVD中用奇異值表徵)按照重要性排列,降維的過程就是捨棄不重要的特徵向量的過程,而剩下的特徵向量組成的空間即為降維后的空間。
幾種編程語言中計算SVD的函式範例
matlab:
[b c d]=svd(x)
OpenCV:
void cvSVD( CvArr* A, CvArr* W, CvArr* U=NULL, CvArr* V=NULL, int flags=0 )
在很長時間內,奇異值分解都無法并行處理。(雖然 Google 早就有了MapReduce 等并行計算的工具,但是由於奇異值分解很難拆成不相關子運算,即使在 Google 內部以前也無法利用并行計算的優勢來分解矩陣。)最近,Google 中國的張智威博士和幾個中國的工程師及實習生已經實現了奇異值分解的并行演演算法,這是 Google中國對世界的一個貢獻。