前言
奇異值分解(SVD)在降維,數據壓縮,推薦系統等有廣泛的應用,任何矩陣都可以進行奇異值分解,本文通過正交變換不改變基向量間的夾角循序漸進的推導SVD算法,以及用協方差含義去理解行降維和列降維,最后介紹了SVD的數據壓縮原理 。
1. 正交變換
正交變換公式:
上式表示:X是Y的正交變換,其中U是正交矩陣,X和Y為列向量 。
下面用一個例子說明正交變換的含義:
假設有兩個單位列向量a和b,兩向量的夾角為θ,如下圖:
現對向量a,b進行正交變換:
,的模:
由上式可知和的模都為1。
和的內積:
由上式可知,正交變換前后的內積相等。
和的夾角:
比較(2)式和(3)式得:正交變換前后的夾角相等,即:
因此,正交變換的性質可用下圖來表示:
正交變換的兩個重要性質:
1)正交變換不改變向量的模。
2)正交變換不改變向量的夾角。
如果向量和是基向量,那么正交變換的結果如下圖:
上圖可以得到重要結論:基向量正交變換后的結果仍是基向量?;蛄渴潜硎鞠蛄孔詈啙嵉姆椒?,向量在基向量的投影就是所在基向量的坐標,我們通過這種思想去理解特征值分解和推導SVD分解。
2. 特征值分解的含義
對稱方陣A的特征值分解為:
其中U是正交矩陣,是對角矩陣。
為了可視化特征值分解,假設A是2×2的對稱矩陣,,。(2.1)式展開為:
用圖形表示為:
由上圖可知,矩陣A沒有旋轉特征向量,它只是對特征向量進行了拉伸或縮短(取決于特征值的大?。?,因此,對稱矩陣對其特征向量(基向量)的變換仍然是基向量(單位化)。
特征向量和特征值的幾何意義:若向量經過矩陣變換后保持方向不變,只是進行長度上的伸縮,那么該向量是矩陣的特征向量,伸縮倍數是特征值。
3. SVD分解推導
我們考慮了當基向量是對稱矩陣的特征向量時,矩陣變換后仍是基向量,但是,我們在實際項目中遇到的大都是行和列不相等的矩陣,如統計每個學生的科目乘積,行數為學生個數,列數為科目數,這種形成的矩陣很難是方陣,因此SVD分解是更普遍的矩陣分解方法。
先回顧一下正交變換的思想:基向量正交變換后的結果仍是基向量。
我們用正交變換的思想來推導SVD分解:
假設A是M*N的矩陣,秩為K,Rank(A)=k。
存在一組正交基V:
矩陣對其變換后仍是正交基,記為U:
由正交基定義,得:
上式展開:
∴ (3.2)式得:
即假設成立 。
圖形表示如下:
正交向量的模:
單位化正交向量,得:
結論:當基向量是。
用矩陣的形式表示(3.3)式:
V是N*K矩陣,U是M*K矩陣,是M*K的矩陣,需要擴展成方陣形式:
將正交基擴展空間的正交基,即U是M*M方陣 。
將正交基擴展成空間的正交基,其中是矩陣A的零空間,即:
對應的特征值=0,是M*N對角矩陣,V是N*N方陣
因此(3.4)式寫成向量形式為:
得:
(3.5)式寫成向量形式:
令:
則:
A = XY
因為X和Y分別是列滿秩和行滿秩,所以上式是A的滿秩分解。
(3.5)式的奇異矩陣的值是特征值的平方根,下面推導奇異值分解的U和V:
即V是的特征向量構成的矩陣,稱為右奇異矩陣。
即U是的特征向量構成的矩陣,稱為左奇異矩陣 。
小結:矩陣A的奇異值分解:
其中U是的特征向量構成的矩陣,V是的特征向量構成的矩陣,奇異值矩陣的值是特征值的平方根 。
3. 奇異值分解的例子
本節用一個簡單的例子來說明矩陣是如何進行奇異值分解的。矩陣A定義為:
4. 行降維和列降維
本節通過協方差的角度去理解行降維和列降維,首先探討下協方差的含義:
單個變量用方差描述,無偏方差公式:
兩個變量用協方差描述,協方差公式:
多個變量(如三個變量)之間的關系可以用協方差矩陣描述:
相關系數公式:
由上式可知,協方差是描述變量間的相關關系程度:
1)協方差cov(x,y) > 0時,變量x與y正相關;
2)協方差cov(x,y)<0時,變量x與y負相關;
3)協方差cov(x,y)=0時,變量x與y不相關;
變量與協方差關系的定性分析圖:
現在開始討論和的含義:
假設數據集是n維的,共有m個數據,每一行表示一例數據,即:
表示第i個樣本,表示第i個樣本的第j維特征?。
由上式可知,是描述各特征間相關關系的矩陣,所以的正交基V是以數據集的特征空間進行展開的。
數據集A在特征空間展開為:
由上一篇文章可知,特征值表示了在相應特征向量的信息分量。特征值越大,包含矩陣的信息分量亦越大。
若我們選擇前r個特征值來表示原始數據集,數據集A在特征空間展開為:
(4.2)式對列進行了降維,即右奇異矩陣V可以用于列數的壓縮,與PCA降維算法一致。
行降維:
由上式可知:是描述樣本數據間相關關系的矩陣,因此,左奇異矩陣U是以樣本空間進行展開,原理與列降維一致,這里不詳細介紹了 。
若我們選擇前r個特征值來表示原始數據集,數據集A在樣本空間展開為:
因此,上式實現了行降維,即左奇異矩陣可以用于行數的壓縮。
5. 數據壓縮
本節介紹兩種數據壓縮方法:滿秩分解和近似分解
矩陣A的秩為k,A的滿秩分解:
滿秩分解圖形如下:
由上圖可知,存儲X和Y的矩陣比存儲A矩陣占用的空間小,因此滿秩分解起到了數據壓縮作用。
若對數據再次進行壓縮,需要用到矩陣的近似分解。
矩陣A的奇異值分解:
若我們選擇前r個特征值近似矩陣A,得:
如下圖:
我們用灰色部分的三個小矩陣近似表示矩陣A,存儲空間大大的降低了。
6. SVD總結
任何矩陣都能進行SVD分解,SVD可以用于行降維和列降維,SVD在數據壓縮、推薦系統和語義分析有廣泛的應用,SVD與PCA的缺點一樣,分解出的矩陣解釋性不強 。
-
矩陣
+關注
關注
0文章
425瀏覽量
34644 -
向量
+關注
關注
0文章
55瀏覽量
11705 -
SVD
+關注
關注
0文章
21瀏覽量
12194
原文標題:奇異值分解(SVD)原理總結
文章出處:【微信號:AI_shequ,微信公眾號:人工智能愛好者社區】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論