[數學] 奇異值分解SVD的理解與應用
阿新 • • 發佈:2018-07-11
資料 blank art use 過濾 ble 對角線 cos .net
看一個預測的代碼,在預處理數據的時候使用了svd。了解了一下svd相關資料,比較喜歡第一篇文章的解釋,不過第二篇也很簡單。
https://blog.csdn.net/ab_use/article/details/50433635
https://cosx.org/2014/02/svd-and-image-compression
在論述UDV的維度的時候,兩篇文章由不一致的地方。
一種說法是U是一個mxm的矩陣,D是mxn矩陣,V是nxn矩陣。
另一種說法是U是一個mxn矩陣,D是nxn矩陣,V是nxn矩陣。
兩種說法其實都對,第二版是第一版的簡化。因為D的特性,使得D右下角的行(或列)為0(第一篇文章有顯示),所以實際上有效的維度只有min(m, n), 因為有假設m > n, 所以這裏取n。同時,U左乘到D,因此 > n 的部分為0。由此可以將UD從mxm %*% mxn 簡化成mxn %*% nxn的形式。
SVD的有效的一個重要特征在於,分解得到的D矩陣,其對角線上的值是降序排列的。至於為什麽是降序的,這裏應該有證明 A singularly valuable decomposition: the SVD of a matrix (我沒看)
將D矩陣尾部貢獻量較小的特征值丟棄之後,即可得到對源矩陣的一個近似擬合,這個擬合包含了原矩陣絕大部分的信息。因此SVD可以應用於數據壓縮及過濾噪聲等。
s== 分割線 等待整理筆記 ==
[數學] 奇異值分解SVD的理解與應用