svd奇异值分解_奇异值分解SVD
奇異值分解(SVD)在計(jì)算機(jī)視覺中有著廣泛的應(yīng)用,如數(shù)據(jù)降維、推薦系統(tǒng)、自然語言處理等。本文是介紹SVD的數(shù)學(xué)計(jì)算過程,并從SVD的性質(zhì)說明其應(yīng)用的原理。
01特征值與特征向量奇異值分解(SVD)與特征分解類似,是將矩陣分解為由奇異值(特征值)和特征向量表示的矩陣之積的方法。因而,在介紹SVD前有必要先介紹特征值、特征向量和特征分解。
由線性代數(shù)知識(shí)可知特征值與特征向量的定義:
? ? ? ? ? ? ? ? ? ? ? ? Aα = λα ? ? ? ? ? ? ? ? ? ? ? ? ?
其中:A是nxn矩陣,λ是特征值,α是特征值對(duì)應(yīng)的n維特征向量。通過線性代數(shù)知識(shí)可以求解特征值和特征向量
02特征分解特征分解是將矩陣分解為由特征值和特征向量表示的矩陣之積的方法。如大小為 nxn 的矩陣 A 可以用如下特征分解表示:
? ? ? ? ? ? ? ? ? ? ? ?? A=WΣW-1 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??
其中:W是n個(gè)特征向量組成的nxn矩陣,Σ是以n個(gè)特征值為主對(duì)角線的nxn矩陣。一般情況下需要將W矩陣中n個(gè)特征向量標(biāo)準(zhǔn)化,即 ||ωi||2=1,或 ωiTωi=1,那么W矩陣為酉矩陣,即 WTW=I,WT=W-1 。則矩陣A的特征分解可以寫為:
? ? ? ? ? ? ? ? ? ? ? ? A=WΣWT ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
由此可見,我們只需計(jì)算矩陣A的特征值和特征向量就能夠?qū)崿F(xiàn)矩陣分解
03奇異值分解上述特征分解是對(duì)大小為nxn的矩陣(方陣)的分解,對(duì)于非方陣的求解則需要采用SVD。假設(shè)A是mxn的矩陣,那么其相應(yīng)的奇異值分解可表示為:
? ? ? ? ? ? ? ? ? ? ? ? A=UΣVT ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??
其中:U是AAT矩陣的特征向量組成的mxm的矩陣,Σ是以奇異值 σ 為主對(duì)角線的mxn的矩陣,V是ATA矩陣的特征向量組成的nxn的矩陣,U,V均為酉矩陣,即UUT=I,VVT=I。
由此可以看出SVD分解后的矩陣計(jì)算方法與特征分解的計(jì)算方法略有不同。對(duì)于U、V矩陣可分別計(jì)算AAT矩陣的特征向量和 ATA 矩陣的特征向量來實(shí)現(xiàn),但 Σ 矩陣包含奇異值 σ?,那么我們需要說明奇異值的計(jì)算。
由SVD分解的定義可知:
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? A=UΣVT ? ? ? ? ? ? ? ? ? ? ? ? ? ?
因?yàn)閂為酉矩陣,即:VTV=I,那么:
? ? ? ? ? ? ? ? ? ? ? AV=UΣVTV=UΣ ? ? ? ? ? ? ? ? ? ?
定義 V 矩陣由特征向量 νi (稱為右奇異向量)組成, U 矩陣由特征向量 μi (稱為左奇異向量)組成,那么
? ? ? ? ? ? ? ? ? ? ? ? ?? Aνi? = σi?μi ? ? ? ? ? ? ? ? ? ? ? ??
因?yàn)?νi 和 μi 可以由前述過程得到,所以通過此式能夠得到奇異值,從而構(gòu)建 Σ 矩陣。注意其中 i 的最大值是min( n, m)。
04SVD性質(zhì)SVD分解中奇異值 σ 類似于特征分解中的特征值 λ,在 Σ 矩陣中依據(jù) σ 大小排列后,可發(fā)現(xiàn) σ 數(shù)值減少趨勢明顯,通常數(shù)值較大的 σ 之和占據(jù)了全部奇異值之和的絕大部分比例。因而,我們可以使用前 k 個(gè)最大的奇異值和對(duì)應(yīng)的左右奇異向量來近似描述矩陣,即:
? ?? Amn = UmmΣmnVnnT ? UmkΣkkVknT ? ??
其中k遠(yuǎn)小于n,那么矩陣A可以使用小矩陣表示。因?yàn)镾VD這個(gè)性質(zhì),因而SVD可用于降維、去噪等。
END
掃碼關(guān)注我們臭皮匠快速編程總結(jié)
以上是生活随笔為你收集整理的svd奇异值分解_奇异值分解SVD的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: minhash算法检索相似文本_基于向量
- 下一篇: python怎么播放mp3_python