原文出處:
今天我們來講講奇異值分解和它的一些有意思的應用。奇異值分解是乙個非常,非常,非常大的話題,它的英文是 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
最近不小心接觸到了svd,然後認真看下去之後發現這東西真的挺強大的,把乙個推薦問題轉化為純數學矩陣問題,看了一些部落格,把乙個寫個比較具體的博文引入進來,給自己看的,所以把覺得沒必要的就去掉了,博文下面附原始部落格位址。一 基礎知識 1.矩陣的秩 矩陣的秩是矩陣中線性無關的行或列的個數 2.對角矩陣...
奇異值分解(SVD)
svd是singular value decomposition的縮寫,是去除冗餘 資訊提取和資料約簡的強大工具。若a為p q實數矩陣,則存在p階正交矩陣u和q階正交矩陣v,使得 a u v 上式就是奇異值分解,其中p q矩陣 中,i,i 元素 i 0,i 1,2,3,min p,q 其他元素均為0...
SVD奇異值分解
本文由leftnoteasy發布於 奇異值與特徵值基礎知識 特徵值分解和奇異值分解在機器學習領域都是屬於滿地可見的方法。兩者有著很緊密的關係,我在接下來會談到,特徵值分解和奇異值分解的目的都是一樣,就是提取出乙個矩陣最重要的特徵。先談談特徵值分解吧 1 特徵值 如果說乙個向量v是方陣a的特徵向量,將...