特徵值分解(Eigen Value Decomposition,EVD)、奇異值分解(Singular Value Decomposition,SVD)原理、公式推導及應用

1 正交矩陣&正交變換

  • 正交變換是保持圖形形狀和大小不變的幾何變換,包含旋轉、平移、軸對稱及這些變換的複合形式,正交變換可以保持向量的長度和向量之間的角度不變。特別的,標準正交基經正交變換後仍爲標準正交基。
  • 在有限維的空間中,正交變換在標準正交基下的矩陣表示爲正交矩陣,其所有行和所有列也都各自構成一組標準正交基。
  • 同時,正交變換的逆變換也是正交變換,後者的矩陣表示是前者矩陣表示的逆。

2 特徵值分解(Eigen Value Decomposition,EVD)

2.1 定義

【百度百科】特徵分解(Eigendecomposition),又稱譜分解(Spectral decomposition)是將矩陣分解爲由其特徵值和特徵向量表示的矩陣之積的方法。需要注意只有對可對角化矩陣纔可以施以特徵分解。

如果矩陣AA是一個m×mm \times m的實對稱矩陣(即A=ATA=A^T),那麼它可以被分解爲如下形式:

A=QΛQT=Q[λ1000λ2000λm]QT(2-1) A=Q \Lambda Q^T=Q \begin{bmatrix} \lambda_1 & 0 & \cdots & 0 \\ 0 & \lambda_2 & \cdots & 0 \\ \vdots & \vdots & \ddots & \vdots \\ 0 & 0 & \cdots & \lambda_m \end{bmatrix} Q^T \tag{2-1}

其中QQ爲標準正交陣,即有QQT=IQQ^T=IΛ\Lambdam×mm \times m的對角矩陣,λi\lambda_i稱爲特徵值,QQ爲特徵矩陣,QQ中的列向量qiq_i稱爲特徵向量。

2.2 推導

假設存在m×mm \times m的滿秩對稱矩陣AA,它有mm個不同的特徵值λi(i=1,2,...,m)\lambda_i(i=1,2,...,m),對應的特徵向量爲xi(i=1,2,...,m)x_i(i=1,2,...,m)xix_imm維列向量),則有:

Ax1=λ1x1Ax2=λ2x2Axm=λmxm(2-2) \begin{array}{cc} Ax_1=\lambda_1 x_1 \\ Ax_2=\lambda_2 x_2 \\ \cdots \\ Ax_m=\lambda_m x_m \end{array} \tag{2-2}

U=[x1x2xm]U=\begin{bmatrix} x_1 & x_2 & \cdots & x_m \end{bmatrix},則上式可以表示爲矩陣形式:

AU=UΛ(2-3) AU=U\Lambda \tag{2-3}

Λ=[λ1000λ2000λm](2-4) \Lambda= \begin{bmatrix} \lambda_1 & 0 & \cdots & 0 \\ 0 & \lambda_2 & \cdots & 0 \\ \vdots & \vdots & \ddots & \vdots \\ 0 & 0 & \cdots & \lambda_m \end{bmatrix} \tag{2-4}

進一步就可以得到A的特徵值分解:

A=UΛU1=UΛUT(2-5) A=U\Lambda U^{-1}=U\Lambda U^T \tag{2-5}


3 奇異值分解(Singular Value Decomposition,SVD)

3.1 定義

【百度百科】奇異值分解(Singular Value Decomposition)是線性代數中一種重要的矩陣分解,奇異值分解則是特徵分解在任意矩陣上的推廣。在信號處理、統計學等領域有重要應用。

如果AA是一個m×nm \times n階矩陣,則存在一個分解使得:

A=UΣVT A=U \Sigma V^T

其中UUVV分別爲m×mm \times mn×nn \times n的酉矩陣/單位正交矩陣(即UUT=UTU=IVVT=VTV=IUU^T=U^TU=I,VV^T=V^TV=I)。UU稱爲左奇異矩陣,VV稱爲右奇異矩陣,Σ\Sigma對角線上的元素σi\sigma_i即爲MM的奇異值。一般地Σ\Sigma有如下形式:

Σ=[σ1000σ20000]m×n(3-1) \Sigma= \begin{bmatrix} \sigma_1 & 0 & \cdots & 0 \\ 0 & \sigma_2 & \cdots & 0 \\ \vdots & \vdots & \ddots & \vdots \\ 0 & 0 & \cdots & 0 \end{bmatrix}_{m \times n} \tag{3-1}

3.2 推導

在矩陣的特徵值分解中,矩陣AA的行列維度是相同的,但在實際應用中,矩陣往往是非方陣、非對稱的(如點雲配準問題等)。爲了對這類矩陣進行分解,我們引入奇異值分解(SVD)。

假設矩陣AA的維度爲m×n(mn)m \times n (m \not= n),雖AA不是方陣,但AATAA^TATAA^TA均爲方陣,其維度分別爲m×mm \times mn×nn \times n。因此可以對這兩個方陣分別進行特徵值分解:

AAT=PΛ1PTATA=QΛ2QT(3-2) AA^T= P \Lambda_1 P^T \\ A^TA= Q \Lambda_2 Q^T \tag{3-2}

其中Λ1\Lambda_1Λ2\Lambda_2均爲對角矩陣,且兩個方陣具有相同的非零特徵值σ1,σ2,...,σk{\sigma_1,\sigma_2,...,\sigma_k},其中kmin(m,n)k \leq min(m,n)。這樣就可以進一步得到奇異值分解的公式:

A=PΛQT(3-3) A=P \Lambda Q^T \tag{3-3}

接下來通過更直觀的方式對SVD的原理和推導過程進行說明(參考:You Don’t Know SVD (Singular Value Decomposition))。

首先從最簡單的二維座標說起,任何力矢量都可以沿xxyy軸分解:
在這裏插入圖片描述
這其實就是最簡單的SVD,SVD就是將向量分解到正交軸上(正交變換前的正交軸和正交變換後的正交軸)。

如下圖,我們將向量aa進行分解:
在這裏插入圖片描述
可以得到3個信息:

  • 投影方向(單位向量v1v_1v2v_2):表示沿着xxyy軸的投影方向,這也可以爲其它的正交軸;
  • 投影長度(線段sa1s_{a1}sa2s_{a2}
  • 投影向量(pa1p_{a1}pa2p_{a2}):通過投影向量可以反向計算出原始向量aa,同時我們可以發現pa1=sa1v1p_{a1}=s_{a1}*v_1pa2=sa2v2p_{a2}=s_{a2}*v_2

那麼我們就可以得到一個關鍵結論:

任何向量都可以表示爲:

  • 投影方向的單位矢量(v1v_1v2v_2,…)
  • 在投影方向上的長度(sa1s_{a1}sa2s_{a2},…)

將這一結論擴展到多個向量(或點)以及所有維度上,就是SVD所作的事情:

在這裏插入圖片描述

圖. 數據集的一個示例(一個點可以視爲通過原點的向量)

我們先從單個向量入手,利用矩陣來處理這看似複雜的問題。因此我們必須找到一種方法來表示使用矩陣進行向量分解的操作。
在這裏插入圖片描述

圖. 向量在傾斜的座標軸上投影

我們知道,一個向量在另一個向量上的投影長度可以用向量的點積來計算:
在這裏插入圖片描述

圖. 將$a$投影到$v_1$和$v_2$上

上式可以利用矩陣表示爲:
在這裏插入圖片描述

圖. 通過爲每個單位向量增加一個額外的列,一次寫出兩個方程

也可以將其擴展爲多個點/向量:
在這裏插入圖片描述

圖. 通過爲每個點添加額外的行。$S$是包含投影長度的矩陣

添加點bb後:
在這裏插入圖片描述
進一步,將上式擴展爲任意多點和維度,有:
在這裏插入圖片描述

圖. n = 點的個數,d = 維數,A = 包含點的矩陣,V = 包含分解軸的矩陣,S = 包含投影長度的矩陣
![在這裏插入圖片描述](https://img-blog.csdnimg.cn/2020042312361059.gif#pic_center)

在這裏插入圖片描述

圖 這裏的點積就是普通的矩陣乘法

這等價於:
在這裏插入圖片描述

圖. 因爲V包含標準正交列,它的逆等於它的轉置(正交矩陣的性質)

這就是SVD所說的(記住關鍵結論):

任何向量集(A)都可以用它們在正交軸(V)上的投影長度(S)來表示。

然而,傳統的奇異值公式爲:
在這裏插入圖片描述
實際上這也就等價於求解下式的來源:在這裏插入圖片描述
如果你仔細觀察矩陣S,你會發現它包括:

在這裏插入圖片描述
如果我們能將這些列向量歸一化是最好的,也就是說使它們具有單位長度。這是通過將每個列向量除以它的大小來實現的,但是是以矩陣的形式。

但首先,我們來看一個簡單的例子,看看這個“除法”是怎麼做的:

在這裏插入圖片描述
假設我們要把M的第一列除以2。我們肯定要乘以另一個矩陣來保持等式:
在這裏插入圖片描述
很容易證明未知矩陣就是單位矩陣,第一個元素被除數2代替
在這裏插入圖片描述
第二列除以3現在變成了一個直接的問題把單位矩陣的第二元素換成3
在這裏插入圖片描述
很明顯,這個操作可以推廣到任何大小的矩陣。

我們現在想把上面的除法概念應用到矩陣SS上。爲了歸一化SS的列向量,我們用它們的大小來除它們
在這裏插入圖片描述
在上面的例子中,我們對M所做的就是:
在這裏插入圖片描述
最終我們可以得到奇異值分解的公式:
在這裏插入圖片描述
當然,爲了不分散對核心概念的注意力,省略了一些細節和嚴格的數學運算。

再來看UUΣ\Sigma

在這裏插入圖片描述
σ\sigma呢?爲什麼我們要用正常化的方式去尋找它們來增加自己的負擔呢?

我們已經看到σi\sigma_i是所有的點,在第ii個單位向量viv_i上投影長度的平方和的平方根。那麼這又說明了什麼呢?

在這裏插入圖片描述

圖. 紅色線段 = v1上的投影。藍色線段 = v2上的投影。越近的點到一個特定的軸的投影,相應的σ值越大

因爲在它們的定義中,σ\sigma包含特定軸上投影長度的和,它們表示所有點到那個軸的距離。例如如果σ1>σ2\sigma_1 > \sigma_2,那麼大多數點更接近v1v_1,反之亦然。這在SVD的無數應用中有着巨大的實用價值。


4 SVD的應用

SVD在數據壓縮等領域都有應用,具體參考[1][2][3][4]。

參考

[1] https://blog.csdn.net/sjyttkl/article/details/97563819
[2] https://www.zhihu.com/question/34143886/answer/196294308
[3] https://www.cnblogs.com/endlesscoding/p/10033527.html#335555762
[4] https://www.cnblogs.com/LeftNotEasy/archive/2011/01/19/svd-and-applications.html
[5] You Don’t Know SVD (Singular Value Decomposition)

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