通俗易懂的講解奇異值分解(SVD)和主成分分析(PCA)

 

圖片來自Unsplash上的Dave

0.本教程包含以下內容

特徵分解

對稱矩陣的特徵分解

奇異值分解(The Singular Value DecompositionSVD

主成分分析(Principal Component Analysis PCA)——特徵提取

 

1.特徵分解

首先,我們簡單回顧下特徵值和特徵向量的定義。在幾何學中,矩陣A的特徵向量是指一個經過與矩陣A變換後方向保持不變的向量(其中,假設特徵值均爲實數)。而特徵值爲在這個變化中特徵向量的比例因子。具體可表示如下:

矩陣A與特徵向量x的變換等於特徵向量x與特徵值λ的乘積

對於一個3×3維的矩陣A,我們可以將矩陣A與其特徵向量x的變換理解爲將矩陣A與另一個矩陣x的乘積。這是因爲矩陣A與其特徵向量x的變換等同於矩陣A的每一行與特徵向量x的變換,從而矩陣之間的乘積可以表示爲其特徵值與特徵向量的乘積。此時我們便能夠分離出矩陣的特徵值和特徵值向量,並將其放在兩個矩陣之中。具體過程如下:

通過上面等式,我們可以推出以下等式:

如果一個n×n維矩陣的n個特徵向量均是線性無關的,則這個矩陣能夠被對角化

 

觀察上式,我們能夠看到一個n×n維的矩陣可以由三個獨立的矩陣構成,即一個由特徵向量組成的n×n維的矩陣X和矩陣X的逆,以及一個由特徵值組成的n×n維的對角矩陣Λ。而這個過程也被稱爲矩陣的特徵分解。

 

2.對稱矩陣的特徵分解

對稱矩陣有一個非常重要的性質:他的特徵向量是正交向量。爲了證明這個性質,我們首先假設有以下兩個互不相等的特徵值和特徵向量,如下:

通過下面的等式,我們能夠推出λ1(x1*x2)= λ2(x1*x2):

根據前面步驟的結果,我們可以得到如下等式:

我們一開始便假設特徵值λ1與λ2並不相等。因此特徵值λ1與λ2均不爲0,從而x1*x2也不可能等於0——所以這個特徵向量是正交的。這揭示了一個重要的結論:對稱矩陣能夠被分解爲兩個正交特徵向量組成的矩陣與對角矩陣的乘積。並且,對稱矩陣的特徵值均爲實數。

對稱矩陣的特徵向量具有正交性

 

3.奇異值分解(SVD

特徵分解適用於n×n維的方形矩陣,而由於m×n維的矩形矩陣在變換過程中會改變矩陣原本的維數,從而對於矩形矩陣並沒有對其特徵值進行過定義。

因此對於一個m×n維的矩形矩陣,我們能夠使用下面的方法對其進行特徵分解——即奇異值分解:

其中,矩陣UV是正交矩陣,Σ表示一個包含有奇異值的對角陣。需要說明的是,VU中的列向量分別作爲矩陣A的行空間和列空間中的基向量。

接下來,我們將對其細節進行深入介紹。其實SVD的主要目標就是爲了找到三個參數:矩陣v,矩陣u和奇異值σ,其中矩陣vu都是正交向量且滿足下面等式:

一個n維的列向量v經過矩陣A的變換等於一個m維的行向量u經過奇異值σ的縮放。

與之前在特徵分解部分的步驟相似,我們也可以將上面的方程用矩陣形式表示出來,從而可以得到矩陣A奇異值分解的表達式。

但是,矩陣v,矩陣u和奇異值σ應該如何求取呢?我們可以通過矩陣乘積(AAᵀ和AᵀA)的方式從方程的兩邊來分別消除VU來獲得,具體方法如下:

這些步驟看起來是不是很熟悉…

的確,通過對對稱矩陣AAᵀ和AA進行奇異值分解,這個結果看起來幾乎與對對稱矩陣進行特徵分解是相同的。因此,找到了矩陣U和矩陣V,那麼矩陣AAᵀ和AA的特徵分解就能很容易被執行了,並且相應的矩陣Q也能夠被找到。對於σ,他們即是矩陣AAᵀ也是矩陣AA的均方根特徵值,如下所示:

其中值得注意的是,按照習慣奇異值σ在矩陣Σ中總是按遞減的順序進行排列——即第一行放最大的奇異值,最小的奇異值放在最後一行。如果需要與矩陣Σ中的σ一一對應,那麼就需要對矩陣U和矩陣V中的列進行重新排列。

現在,我們有了一件非常令人興奮的事,我們得到了一種可以分解任何矩陣的方法,而不僅僅侷限於對方陣進行特徵分解。我們現在可以將任何矩陣分解成兩個正交矩陣和一個對角矩陣,其中矩陣U的維度爲m×r,對角陣Σ的維度爲r×r和矩陣V的維度爲r×n,其並且矩陣A的秩爲r

4.主成分分析法(PCA)——特徵提取

PCA在機器學習中是一種常用的無監督學習算法,它通過構建一種被稱爲主成分的變量,並將所用到的所有向量映射到由主成分變量構建的空間上去,從而能夠減少數據的維度。

主成分分析優點:

1. 減少模型的訓練時間——使用了更少的數據集;

2. 數據更容易可視化——對於高維數據,通過人工的方式去實現可視化是比較困難的。

3. 一些情況下能減小過擬合度——通過減少變量來降低模型的過擬合度。

對於實例,我們使用主成分分析法對一個統計包進行了分析。這裏爲了介紹理論基礎,以一個小數據集作爲例子進行講解:

矩陣A有5行3列

 

我們測試了矩陣A的相關性,從中我們能夠發現矩陣A的相關矩陣爲一個對稱陣:

矩陣A的相關性分析

 

對矩陣A進行SVD,能夠得到矩陣UΣV。需要額外說明的是:所有奇異值的平方和與數據集的總體方差相等。

對協方差矩陣A採用下式進行計算:

1.矩陣A是經過標準化後的矩陣,它的均值爲0;2.m是樣本數量

從直觀上可看出,總方差=協方差矩陣AA的跡=矩陣AA的特徵值之和=奇異值平方之和。通過奇異值分解得到的u即是n維空間中的主成分,第i個主成分的重要性可由下式計算所得(通過計算在方差中的比例來確定):

奇異值越大=得到的方差越多=包含的信息就越多

回顧我們例子中的對角矩陣Σu1對應的最大奇異值爲17.7631,佔數據集中方差的比例爲74%。因此,通過把5個樣本向量映射到u1,在沒有損失任何信息的情況下,所需分析矩陣A的維度從3維下降到了1維。

 

作者:李愛(Li Ai)

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章