1. 程式人生 > >【Math for ML】矩陣分解(Matrix Decompositions) (上)

【Math for ML】矩陣分解(Matrix Decompositions) (上)

mar 集合 分解 begin 傳統 gin logs font 成對

I. 行列式(Determinants)和跡(Trace)

1. 行列式(Determinants)

為避免和絕對值符號混淆,本文一般使用\(det(A)\)來表示矩陣\(A\)的行列式。另外這裏的\(A∈R^{n×n}\)默認是方陣,因為只有方陣才能計算行列式。

行列式如何計算的就不在這裏贅述了,下面簡要給出行列式的各種性質和定理。

定理1:當且僅當一個方陣的行列式不為0,則該方陣可逆。
定理2:方陣\(A\)的行列式可沿著某一行或某一列的元素展開,形式如下:

  • 沿著第\(i\)行展開:\[det(A)=\sum_{k=1}^n(-1)^{k+i}a_{ik}det(A_{i,k})\]
  • 沿著第\(i\)列展開:\[det(A)=\sum_{k=1}^n(-1)^{k+i}a_{ki}det(A_{k,i})\]
    定理3:當且僅當一個方陣為滿秩時,該方陣行列式不為0,即可逆。

2. 跡(Trace)

矩陣的跡是矩陣對角元素之和,即
\[tr(A)=\sum_{i=1}^na_{ii}\]

有如下性質:

  • \(tr(A+B)=tr(A)+tr(B)\)
  • \(tr(αA)=\alpha tr(A),\alpha∈R\)
  • \(tr(I_n)=n\)
  • \(tr(ABC)=tr(BCA)=tr(=CAB)\)
  • \(tr(AB)=tr(BA), A∈R^{n×m},B∈R^{m×n}\)

II. 特征值(Eigenvalue)&特征向量(Eigenvector)

1. 特征值與特征向量定義:

對於一個給定的矩陣 \(A∈R^{n×n}\),它的特征向量\(v\) 經過這個線性變換之後,得到的新向量仍然與原來的 \(v\)保持在同一條直線上,但其長度或方向也許會改變。即
\[Av=\lambda v\]
\(\lambda ∈R\)是矩陣\(A\)特征值\(v\)是對應的特征向量

\(λ=λ_i\)是矩陣\(A\)的一個特征值,則有方程\((A-λ_iv)x=0\),可求得非零解\(x=p_i\)即為\(λ_i\)對應的特征向量。(若\(λ_i\)為實數,則\(p_i\)

可取實向量;\(λ_i\)為復數,則\(p_i\)可取復向量)

  • 推論
    設n階矩陣\(A=(a_{ij})\)的特征值為\(λ_1,...,λ_n\),不難證明:
    • 1)\(λ_1+..+λ_n=a_{11}+...+a_{nn}\)
    • 2)\(λ_1λ_2...λ_n=|A|\)

    由2)可知\(A\)是可逆矩陣的充要條件是它的n個特征值全不為0.

  • 定理

    \(λ_1,...,λ_n\)是方陣\(A\)的n個特征值,\(p_1,...,p_n\)依次是對應的特征向量,如果\(λ_1,...,λ_n\)各不相等,則\(p_1,...,p_n\)線性無關。

2. 特征空間(Eigenspace)和特征譜(Eigenspectrum) 定義

由特征值\(\lambda\)及其對應的特征向量\(v\)所span的空間稱為特征空間 ,用\(E_{\lambda}\)表示。矩陣\(A\)的特征值集合稱為特征譜。

下面給出兩個定理,後面內容很多都是基於它們推導出來的。

  • (Hogben(2006)): 一個n階方陣\(A\)如果有n個不同的特征值,那麽對應的n個特征向量互相線性獨立。
  • (Meyer(2000)): 任何n階對稱矩陣都有n個獨立且正交的特征向量

3. 圖解特征向量和特征值

下面使用二維圖像的變換來幫助我們直觀理解特征值和特征向量的意義。一共給出了兩個示例,最左邊表示原數據,中間表示不同特征值對應的特征向量方向(紅色表示\(λ_1\)對應的特征向量,藍色表示\(λ_2\)對應的特征向量),最右邊表示經過矩陣變換後得到的新的矩陣,該矩陣反應了特征向量和特征值是如何影響變換的。

  • 第一個例子

\[ A_1=\left[ \begin{matrix} 0.5 & 0 \ 0 & 2 \ \end{matrix} \right] \]

簡單計算後可求出特征值和與之對應的特征向量分別為:

  • \(λ_1=0.5:p_1=[1,0]^T\)
  • \(λ_2=2\,\,\,\,\,:p_2=[0,1]^T\)
  • \(tr(A)=\sum_{i=1}^n \lambda_i\)

可以看到最後得到的新的矩陣\(A_1x\)沿著特征矩陣的方向伸縮,伸縮比例恰巧等於對應特征值大小。

技術分享圖片

\[ A_4=\left[ \begin{matrix} 1 & -1 \ -1 & 1 \ \end{matrix} \right] \]

簡單計算後可求出特征值和與之對應的特征向量分別為:

  • \(λ_1=0:p_1=[1,1]^T\)
  • \(λ_2=2\,\,\,\,\,:p_2=[-1,1]^T\)

可以看到最後得到的新的矩陣\(A_1x\)沿著特征矩陣的方向伸縮,伸縮比例恰巧等於對應特征值大小。

技術分享圖片

關於特征值,特征矩陣等概念更直觀,更透徹的理解可以參看文末【理解矩陣】系列文章,這系列文章用非常淺顯易懂的語言解釋了什麽是矩陣,行列式和向量。

III. 平方根法(Cholesky decomposition)

一種矩陣運算方法,又叫Cholesky分解。所謂平方根法,就是利用對稱正定矩陣的三角分解得到的求解對稱正定方程組的一種有效方法。它是把一個對稱正定的矩陣表示成一個下三角矩陣L和其轉置的乘積的分解。它要求矩陣的所有特征值必須大於零,故分解的下三角矩陣的對角元也是大於零的。公式如下:
\[ \begin{align} A&=LL^T \notag \\Leftrightarrow \left[ \begin{matrix} a_{11} & \cdots &a_{1n} \ \vdots & \ddots &\vdots \ a_{n1} & … &a_{nn} \ \end{matrix} \right] &= \left[ \begin{matrix} l_{11} & \cdots &0 \ \vdots & \ddots &\vdots \ l_{n1} & … &l_{nn} \ \end{matrix} \right] \left[ \begin{matrix} l_{11} & \cdots &l_{n1} \ \vdots & \ddots &\vdots \ 0 & … &l_{nn} \ \end{matrix} \right] \notag \end{align} \]
其中\(L\)又稱為Cholesky因子。

這裏不會詳細介紹該方法的計算方法,簡單說明一下該方法會帶來哪些好處。

1.求逆矩陣

我們都知道求一個矩陣的逆矩陣是一個非常耗時的過程,而對於一個上(下)三角矩陣而言,求逆矩陣就簡單很多。假設我們已經將矩陣\(A\)分解,那麽有
\[A^{-1}=(LL^T)^{-1}=(L^{-1})^T(L^{-1})\]

2.求行列式

\[det(A)=det(L)^2=\prod_i{l_{ii}^2}\]

IV. 特征分解(Eigendecomposition)&對角化(Diagonalization)

1. 對角矩陣&相似矩陣

常見的對角矩陣形式如下:
\[ \begin{align} D= \left[ \begin{matrix} c_1 & \cdots & 0 \\vdots & \ddots & \vdots \0 & \cdots & c_n \notag \end{matrix} \right] \end{align} \]

註意:對角矩陣不一定是方陣,但是為了方便解釋默認用對角方陣來說明。

很明顯對角矩陣相對於其他形式的矩陣天然有很多計算上的優勢,例如計算逆矩陣,行列式時都非常簡單,所以如果能把一個矩陣對角化,那麽很多問題就可以解決了。

在介紹矩陣對角化之前簡單回復一下相似矩陣(similar matrix) 的概念,即

如果存在一個可逆矩陣\(P\)使得兩個矩陣\(A,D\)滿足\(D=P^{-1}AP\),那麽則稱\(A,D\)相似。

2. 可對角化(Diagnolizable)

  • 定義
    所以可對角化(Diagnolizable) 可定義如下:

    如果一個矩陣\(A\)和一個對角矩陣相似,則稱\(A\)可對角化。也就是說如果存在一個可逆矩陣\(P\)使得兩個矩陣\(A,D\)滿足\(D=P^{-1}AP\),且\(D\)為對角矩陣,那麽則稱\(A\)可對角化。

  • 對角化條件
    那麽什麽時候才能對角化呢?答案在下面的特征值分解/對角化定理中:

    當且僅當方陣\(A∈R^{n×n}\)滿秩(即有n個獨立的特征向量)時,有
    \[A=PDP^{-1}\]
    其中\(P\)是由\(A\)的特征矩陣組成的可逆矩陣,\(D\)是由\(A\)的特征值組成的對角矩陣。

  • 虧損矩陣
    基於上面的介紹,很自然地給出虧損矩陣(defective matrix) 的定義:

    n階矩陣\(A\)若有n個線性無關的特征向量(n個特征值也要各不相同),稱\(A\)非虧損矩陣,即\(A\)有完備的線性無關的特征向量系。反之稱\(A\)虧損矩陣

  • 對稱矩陣對角化

任何對稱矩陣都可以對角化,即
\[ \begin{align} S&=PDP^{-1} \notag\&=PDP^T \notag \end{align} \]
其中\(P\)是由n個正交特征向量組成的矩陣(此時有\(P^{-1}=P^T\),證明略),\(D\)是特征值組成的對角矩陣

下圖直觀地給出了對稱矩陣對角化的過程:

技術分享圖片

上圖可劃分成四個部分,按順時針順序分別簡稱為LT(Left-Top),RT(Right-Top),LB(Left-Bottom),RB(Right-Bottom)。

LT\(p_1,p_2\)表示矩陣\(A∈R^{2×2}\)的單位特征向量(長度為1)。

  • LT→RT:單位圓按照\(A\)特征向量的方向伸縮,伸縮比例等於\(A\)的特征值大小。因為\(A\)的對稱矩陣,所以其特征向量是互相獨立且正交的,由圖可以清楚地看到\(p_1⊥p_2\);
  • LT→LB: 因為\(A\)的對稱矩陣,所以有\(P^T=P^{-1}\),所以可以\(P^T\)理解成將坐標軸體系由\(p_1,p_2\)坐標體系逆向還原成傳統的\(e_1,e_2\)坐標體系。所以矩陣的本質其實也可以理解成對坐標軸的變換,這個觀點相信你在看了文末給出的【理解矩陣】系列文章後會有更深刻的理解。
  • LB→RB: 如果上面的介紹你理解了,那麽這一過程也就很自然地能夠理解了。沒錯,該步驟就表示在將坐標軸還原到傳統意義上的坐標軸後對LB的單位圓按照特征值大小進行伸縮。
  • RB→LT: 對坐標軸進行變換。

參考

  • 理解矩陣(一)
  • 理解矩陣(二)
  • 理解矩陣(三)



MARSGGBO?原創





2018-12-18



【Math for ML】矩陣分解(Matrix Decompositions) (上)