1. 程式人生 > >[數學] 奇異值分解SVD的理解與應用

[數學] 奇異值分解SVD的理解與應用

資料 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的理解與應用