目前所有的文章都是直接給出了svd的應用比如圖壓縮的例子,然後就告訴你奇異值分解就是這個意思可以做資料的壓縮等等,但是為什麼?為什麼可以做的壓縮?換句話說我們這麼幹了之後為什麼會在最大程度上代表原圖?以下是純系個人形象理解 難等大雅之堂!
奇異值分解的公式 x=uev'
實際工程中遇到的資料大多數為m*n 且m>n 所以此處不再討論其他亂七八糟的情形
矩陣本身代表了對空間的一種線性變化,我們知道乙個其實就是一矩陣,我們並不是說代表了一種變換只不過我們可以按照矩陣的特性去對進行研究,這也是影象處理的乙個前提.
回到咱們的資料矩陣x 我們知道所有滿秩方陣沒有改變原有空間的維數,但是m*n矩陣一定是對空間的維數進行了改變,所以我們就可以把矩陣x對應的空間變換 看成4部分來說 :
第一部分 對原有空間的旋轉
第二部分 對原有空間不同緯度的拉伸 此處包含了對維度的刪減或者增加 (把某個維護的資料全部壓縮為零 這個維度不就沒了嗎)
第三部分 對新的變換了維度的空間進行拉伸 其實這一部分完全可以和上一部分組合在一起.
第四部分 對新的空間的旋轉變化
其實這樣一系列變化如果用公式來表達的話就是我們的奇異值分解公式也就是 u代表了純粹的在原有維數空間的旋轉,u的列向量分別表示了不同緯度的旋轉方向,e是乙個對角陣表示了不同緯度拉伸的比例(很顯然拉伸比例越大的維度的變換越能代表整個變換,這個點我認為對svd的直觀理解至關重要)v代表了對新維度空間的變換,v''的列向量分別表示了各個維護的旋轉方向.
應用解析:
1 壓縮 我們選取e比較大的那幾個維度的u e v 重新組成變換 ,這個時候我們認為新生成的變換能夠較大程度的代表原有變換,實際上svd進行的壓縮效果 也告訴了我們這樣乙個事實.
3 推薦系統的應用
因為例子中給了乙個完全不明白怎麼回事的公式 所以就不在細說了還需要琢磨
奇異值分解 SVD
最近不小心接觸到了svd,然後認真看下去之後發現這東西真的挺強大的,把乙個推薦問題轉化為純數學矩陣問題,看了一些部落格,把乙個寫個比較具體的博文引入進來,給自己看的,所以把覺得沒必要的就去掉了,博文下面附原始部落格位址。一 基礎知識 1.矩陣的秩 矩陣的秩是矩陣中線性無關的行或列的個數 2.對角矩陣...
SVD奇異值分解
原文出處 今天我們來講講奇異值分解和它的一些有意思的應用。奇異值分解是乙個非常,非常,非常大的話題,它的英文是 singular value decomposition,一般簡稱為 svd。下面先給出它大概的意思 對於任意乙個 m n 的矩陣 m 不妨假設 m n 它可以被分解為 m udv t 其...
奇異值分解(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...