奇異值分解是乙個非常,非常,非常大的話題,它的英文是 singular value decomposition,一般簡稱為 svd。下面先給出它大概的意思:
對於任意乙個 m×
n 的矩陣
m ,不妨假設
m>
n ,它可以被分解為 m
=udv
t 其中
先別急,我看到這個定義的時候和你一樣暈,感覺資訊量有點大。事實上,上面這短短的三條可以引發出 svd 許多重要的性質,而我們今天要介紹的也只是其中的一部分而已。
前面的表示式 m=
udvt
可以用一種更容易理解的方式表達出來。如果我們把矩陣
u 用它的列向量表示出來,可以寫成 u
=(u1
,u2,
…,un
) 其中每乙個 ui
被稱為
m 的左奇異向量。類似地,對於
v ,有 v
=(v1
,v2,
…,vn
) 它們被稱為右奇異向量。再然後,假設矩陣
d 的對角線元素為 di
(它們被稱為
m 的奇異值)並按降序排列,那麼
m 就可以表達為 m
=d1u
1vt1
+d2u
2vt2
+⋯+d
nunv
tn=∑
i=1n
diui
vti=
∑i=1
nai
其中 ai
=diu
ivti
是乙個 m×
n 的矩陣。換句話說,我們把原來的矩陣
m 表達成了
n 個矩陣的和。
這個式子有什麼用呢?注意到,我們假定 di
是按降序排列的,它在某種程度上反映了對應項 ai
在 m 中的「貢獻」。di
越大,說明對應的 ai
在 m 的分解中佔據的比重也越大。所以乙個很自然的想法是,我們是不是可以提取出 ai
中那些對
m 貢獻最大的項,把它們的和作為對
m 的近似?也就是說,如果令 m
k=∑i
=1ka
i 那麼我們是否可以用 mk
來對 mn
≡m進行近似?
答案是肯定的,不過等一下,這個想法好像似曾相識?對了,多元統計分析中經典的主成分分析就是這樣做的。在主成分分析中,我們把資料整體的變異分解成若干個主成分之和,然後保留方差最大的若干個主成分,而捨棄那些方差較小的。事實上,主成分分析就是對資料的協方差矩陣進行了類似的分解(特徵值分解),但這種分解只適用於對稱的矩陣,而 svd 則是對任意大小和形狀的矩陣都成立。(svd 和特徵值分解有著非常緊密的聯絡,此為後話)
我們再回顧一下,主成分分析有什麼作用?答曰,降維。換言之,就是用幾組低維的主成分來記錄原始資料的大部分資訊,這也可以認為是一種資訊的(有損)壓縮。在 svd 中,我們也可以做類似的事情,也就是用更少項的求和 mk
來近似完整的
n 項求和。為什麼要這麼做呢?我們用乙個影象壓縮的例子來說明我們的動機。
我們知道,電腦上的影象(特指位圖)都是由畫素點組成的,所以儲存一張 1000×622 大小的,實際上就是儲存乙個 1000×622 的矩陣,共 622000 個元素。這個矩陣用 svd 可以分解為 622 個矩陣之和,如果我們選取其中的前 100 個之和作為對影象資料的近似,那麼只需要儲存 100 個奇異值 di
,100 個 ui
向量和 100 個 vi
向量,共計 100×(1+1000+622)=162300個 元素,大約只有原始的 26% 大小
奇異值 奇異矩陣 SVD分解 正交矩陣
奇異值 奇異值分解法是線性代數中一種重要的矩陣分解法,在訊號處理 統計學等領域有重要應用。定義 設a為m n階矩陣,a 表示a的轉置矩陣,a a的n個特徵值的非負平方根叫作a的奇異值。記為 i a 如果把a a的特徵值記為 i a a 則 i a sqrt i a a 奇異矩陣 奇異矩陣是線性代數的...
矩陣奇異值分解
奇異值分解是線性代數中一種重要的矩陣分解,在訊號處理 統計學等領域有重要應用。定義 設a為m n階矩陣,aha的n個特徵值的非負平方根叫作a的奇異值。記為 i a 如果把aha的特徵值記為 i a 則 i a i aha 1 2 定理 奇異值分解 設a為m n階復矩陣,則存在m階酉陣u和n階酉陣v,...
奇異矩陣與非奇異矩陣
首先需要說明的值奇異矩陣和非奇異矩陣都是針對方陣而言的。奇異矩陣是線性代數的概念,就是對應的行列式等於0的矩陣。對乙個 n 行 n 列的非零矩陣 a,如果存在乙個矩陣 b 使 ab ba i i是單位矩陣 則稱 a 是可逆的,也稱 a 為非奇異矩陣。非奇異矩陣的英文是nonsingular matr...