之前看到過很多次奇異值分解這個概念,但我確實沒有學過。大學線性代數課教的就是坨屎,我也沒怎么去上課,后來查了點資料算是搞清楚了,現在寫點東西總結一下。
奇異值分解,就是把一個矩陣拆成一組矩陣之和。在數學里面,因式分解,泰勒展開,傅里葉展開,特征值分解,奇異值分解都是這個路數。就是把當前數據表示成一組某種意義下互相獨立的數據疊加的形式。目的在於簡化計算處理或舍棄次要信息。
數學表達:或
其中系數是每一項的奇異值,u,v是列向量,可以發現每一項的
都是秩為一的矩陣,我們人為假定
。跟矩陣特征值分解在形式上還是有很大相似之處的。
每個矩陣都可以表示成多個秩為一的矩陣的和,而每一項前的系數也就是奇異值的大小反映了這一項相對於A的權重大小。
然后說一下SVD的物理應用,主要舉例圖像壓縮與圖像去噪。
圖像壓縮,即適當降低圖像精度,假設矩陣A表示了目標圖片,對A作SVD分解,那么我們把A的分解式末端權重較小的部分舍棄(或者說只保留前面權重大的若干項),那么這張圖片所需存儲量便大大降低了,進而達到了圖像壓縮。
圖像去噪,如果一副圖像包含噪聲,我們有理由相信那些較小的奇異值就是由噪聲引起的。例如圖像矩陣A奇異值分解后得到的奇異值為:15.29,7.33,5.23,4.16,0.24,0.03。最后兩項相對於前面幾項權重太小了,把它們舍掉,便直觀地看出圖像噪聲減少了。