人工智能裏的數學修煉 | 矩陣的花樣分解:特徵值分解(EVD)、相似對角化、QR分解、Schur分解、奇異值分解(SVD)的概念糾纏與詳解

前言

在高等代數裏,矩陣分解是一個十分基礎與重要的內容,任何一個學校對於理工科的研究生教育都會開設相應的課程,如:矩陣分析、矩陣論、線性系統等。看了不少社區的問答、筆記和博客,在它們的基礎上加入一些自己的理解,寫下這篇概念詳解,博客中借鑑了不少前人的觀點,這裏感謝他們的付出

一、特徵值分解(EVD)

把特徵值分解(EigenValue Decomposition,EVD)放在最前面說是因爲這是一個相對來說更基礎的概念,後面的一些分解方式會在這一基礎上進行推導

1.1 特徵值分解、特徵值、特徵向量

特徵值分解,是指將矩陣分解爲由其特徵值和特徵向量表示的矩陣之積的方法。一個NxN的方陣A可以有下式:

Av=λv

此時λ 被稱爲方陣A的特徵值,v被稱爲特徵值 λ 對應的特徵向量。上式可以化爲

(λIA)v=0

det|λIA|=0 (此式被稱爲矩陣A的特徵多項式)我們可以得到下式:

(λλ1)n1(λλ2)n2(λλl)nl=0

li=1ni=N

這樣我們便可以得到矩陣A的 l 種不同的特徵值,每種特徵值有 ni 個重複,共N個特徵值。對於特徵向量的求解,我們放在下一小節。從這裏我們可以看出矩陣A可以有多個特徵值和多個特徵向量,每一個特徵值對應一個或多個特徵向量(此時該對應的特徵值有重複),不同特徵值對應的特徵向量之間線性不相關重根對應的多個特徵向量之間不一定不相關。特徵值分解將矩陣分解成爲了如下形式

A=QΛQ1

對於沒有重根的情況 Λ=diag(λ1,λ2,,λn) ,對於有重根的情況 ΛJordan標準型。這裏的Q是以特徵向量爲列向量的NxN矩陣

1.2 特徵向量的求解

求解特徵向量有多種方法這裏介紹最簡單也是最常用的方法

  • 計算A的特徵多項式det|λIA|=0 ,從而求得特徵值 λi

  • 對於單根特徵值來說,求齊次方程 (λiIA)vi=0 ,即可求得該特徵值對應的特徵向量

  • 對於有重根的特徵值來說,可以使用一下公式,依次迭代求解

    v1:Av1=λv1

    v2:Av2=v1+λv2

    v3:Av3=v2+λv3


    vN:AvN=vN1+λvN

1.3 特徵值與特徵向量的意義解釋

上面介紹了特徵值分解、特徵值與特徵向量的數學定義與求解方式,但是看到這裏,可能讀者對於特徵值分解的具體意義與作用還是模糊的,這也確實是一個比較難理解的地方。
我們知道,矩陣乘法其實是對應着一個線性變換,是把任意一個向量變成另一個方向或者長度的新向量。在這個變換中,原向量主要發生旋轉、伸縮的變化。如果矩陣對某一個向量或某些向量只發生伸縮變換,而不對這些向量產生旋轉效果,那麼這些向量就稱爲這個矩陣的特徵向量,伸縮的比例就是特徵值
例如,對於矩陣 M=[3001] 它對應的線性變換爲

這裏寫圖片描述

M矩陣是對稱的,所以這個變換是一個對x,y軸的拉伸變換,此處將原方塊在x軸方向拉長了三倍。對於不是對稱的情況,如 M=[1011] ,對應的線性變換爲

這裏寫圖片描述

看到這裏,大家應該明白了,特徵向量與特徵值對於一個矩陣的意義,每一個特徵向量都對應着這個矩陣在對另一個對象作線性變換時所產生變換的方向,而特徵值則表示着這個變化的大小。也就是說,矩陣A的信息可以由其特徵值和特徵向量表示。對於矩陣爲高維的情況下,這個變換就對應着很多方向的變化,我們通過特徵值分解得到的對應特徵值較大的前N個特徵向量,便表示了這個矩陣最主要的N個變化方向。我們利用這前N個變化方向,就可以近似這個矩陣的變換,而著名的主成分分析(Principle Conponent Analysis,PCA)便是基於這一原理實現的。
總而言之,通過特徵值分解我們可以得到特徵值與特徵向量,特徵向量表示這個特徵是什麼,而特徵值表示着這個特徵有多重要。同時,我們要意識到特徵值分解也有一定的侷限性,它的對象必須是方陣,而實際中的矩陣往往不是方陣,後面要說的奇異值分解將其演化到了普通形式的矩陣

二、相似對角化

2.1 相似矩陣的定義

設A、B是兩個n階方陣,如果存在可逆矩陣T,使得 T1AT=B 則稱A與B相似,記作A~B,從A到B的這種變化稱爲相似變換,T稱爲相似變換矩陣。
矩陣的相似關係是一種等價關係(並不是相等),相似矩陣滿足以下特性

  • 自反性:A~A
  • 對稱性:若A~B,則B~A
  • 傳遞性:若A~B,B~A,則A~C

2.2 相似對角化的條件與推論

N階方陣A與對角陣相似的前提是:A有N個線性無關的特徵向量。可以對角化即意味着存在某組基,使得這個矩陣所代表的線性變換在這組基的每一個方向上都是伸縮變換復向量上的復“伸縮變換“近似於在某種意義上非剛性但依然線性的伸縮旋轉),不能對角化即意味着找不到這樣一組基

注:對於相似變換來說,有一些東西是變換前後沒有改變的

  • AΛ=diag(λ1,λ2,,λN) ,則A與 Λ 的特徵值相同,Λ 的主對角線元素 λ1,λ2,,λN 爲A的全部特徵值。相似變換的變換矩陣爲 P=(p1,p2,,pN) ,則列向量p1,p2,,pN 依次是λ1,λ2,,λN 對應的特徵向量

  • 相似變換矩陣不唯一,因爲特徵向量的排列順序可以發生變化

  • AΛ ,若不計Λi 的排列順序,則Λ 唯一,稱爲A的相似標準型

基於相似轉換的定義以及以上特性,我們可以得到一些重要的推論

2.2.1 推論一

若N階方陣A的n個特徵值互不相同,則A與對角陣相似,這是顯然的,因爲對應於不同特徵值的特徵向量線性無關,由此N個特徵向量可以產生N個線性無關的基向量

2.2.2 推論二

λ1,λ2,,λN 是A的l 個互不相同的特徵值,重數依次爲r1,r2,,rN ,且有r1+r2++rl=N ,則A可以相似對角化的充分必要條件爲:A的ri 重特徵值λi 恰有ri 個線性無關的特徵向量(i=1,2,,l)

注:此處的ri 又被稱爲代數重數,而實際的線性無關的特徵向量的個數稱爲幾何重數Ri 。我們有Ri<=ri 總是成立的,推論二是指只有當Ri=ri 時方陣A纔可以相似對角化

推論二的證明較爲繁瑣,感興趣的可以點擊這裏

2.2.3 推論三

如果N階方陣A可以對角化,則A的等於A的非零特徵值的個數。這也是很容易理解的,若A可以對角化,設與其相似的對角陣爲Λ ,即存在可逆矩陣P,使得P1AP=Λ 。因此A與Λ 等價,由此 rank(A) = rank(Λ ) ,所以Λ 對角線上的非零元素個數爲rank(A)。又因爲A與Λ 相似,所以A的特徵值與Λ 的特徵值相同,所以A的秩矩陣的秩等於A的非零特徵值的個數

那麼,對於那些不能對角化的矩陣我們該如何理解呢?這裏我借用知乎上一位匿名答主的回答向大家解釋:

可對角化的矩陣舉例如下,左圖爲原圖,右圖爲經過可以對角化的矩陣線性變換後的結果,箭頭表示着伸縮的方向,長度表示變換的大小
這裏寫圖片描述

不能對角化的兩個變換如下,注意這種時候發生了切變下圖的變換均不能表示爲各個方向獨立的伸縮,也不能表示爲帶伸縮的旋轉。圖中不從原點出發的箭頭表示切變的大小和方向
這裏寫圖片描述

同時我們也應該注意到以上的四幅圖中,第二幅圖可以對角化的矩陣,它的jordan標準型是對角化的,而三、四幅圖,它的Jordan標準型不是對角化的。實際上第二幅圖的Jordan標準型就是變換矩陣對角相似化後的對角矩陣(在這裏我們也稱它爲對角標準型),對角標準型是Jordan標準型的特例
相似對角化是矩陣分析當中最基礎也是最重要的內容,在高等代數與工程問題中被廣泛運用,可以極大的簡化矩陣的運算,如計算方陣的高次冪、求矩陣行列式等

2.3 實對稱矩陣與相似對角化

看了第二節之後,我們知道,對於一般的方陣我們常常無法進行相似對角化來簡化矩陣,同時對於高維矩陣來說,對角化的條件難於判斷。在這一小節,要介紹一類一定可以實現對角化的矩陣——實對稱矩陣

2.3.1 實對稱矩陣的特徵值與特徵向量

實對稱矩陣的特徵值爲實數,對應的特徵向量爲實向量。設λ 是A的特徵值,v是對應λ 的特徵向量,若A爲實對稱矩陣,則有一下性質

AT=A , A¯=A

Av=λv,v0

可以據此推導
v¯TAv=v¯TATv=(Av¯)Tv=(Av)Tv

λv¯Tv=λ¯v¯Tv

所以
λ=λ¯

λ 爲實數,因此det|AλE|x=0 必有實的基礎解系,從而對應的特徵向量可以取實向量

2.3.2 實對稱矩陣正交相似於對角矩陣

若A是N階實對稱矩陣,λ1,λ2,,λN 是A的特徵值,則有正交矩陣Q,使得

Q1AQ=QTAQ=Λ=diag(λ1,λ2,,λN)

此時稱A正交相似於Λ 。這裏有一個非常重要的結論:實對稱矩陣的所有特徵向量之間是線性無關的,我們之前提到的方陣A的特徵向量之間線性無關,僅僅限於不同特徵值之間的特徵向量,對於同一特徵值的不同特徵向量之間,普通的方陣並不能保證他們線性無關

那麼,這個正交變換矩陣該如何求出來呢?可以按照以下步驟:

  • 求出A的全部特徵值
  • 求出每個特徵值所對應的全部特徵向量
  • 以特徵向量爲列向量寫出變換矩陣
  • 使用Schmidt 正交化將變換矩陣正交化,單位化,得到正交矩陣Q

2.4 相似對角化與特徵值分解的區別

相似對角化與特徵值分解乍看上去是極爲相似的,它們都需要用到特徵值與特徵向量的概念,但其實有較大差別

  • 目的:特徵值分解的目的在於矩陣分解,求得矩陣對應的特徵值與特徵向量;而相似對角化的目的在於通過變換矩陣的線性變換將原方陣轉換爲對角矩陣

  • 條件:所有的方陣都可以進行特徵值分解得到對應的特徵值與特徵向量;只有當方陣的幾何重數與代數重數相等(方陣的最小多項式無重根)時,方陣纔可以實現對角化

  • 結果:通過特徵值分解得到的特徵向量與特徵值可以構成對角標準型與jordan標準型(前者是後者的特例),其中Jordan標準型不是對角矩陣;而相似對角化得到的矩陣一定是對角矩陣

三、QR分解

QR分解是目前求取一般矩陣全部特徵值的最有效並且廣泛應用的辦法,它是將矩陣分解成爲一個正交矩陣Q和一個上三角矩陣R,所以稱爲QR分解。這一分解方法除了用於特徵值計算外,在參數估計和通信領域也有着廣泛的應用

3.1 QR分解的定義與推導

AϵRn×m ,且 n>=m ,則存在列正交矩陣 QϵRn×m上三角矩陣 RϵRm×m ,使得 A=QR
m=n 時 ,Q 爲正交矩陣。如果A是非奇異的n×n 矩陣,則R的所有對角線元素均爲正,並且在這種情況下,QR 是唯一的。若A是復矩陣,則QR 取復值

關於QR分解的證明,這裏根據Schmidt 正交化的方法給出當A爲列滿秩情況下的證明:

  • A 表示爲 A=[x1,x2,,xm]
  • 由於A 滿秩,所以 xi 之間線性獨立,通過Schmidt 正交化我們可以得到一組正交向量和一個上三角矩陣如下

[u1u2um]=[x1x2xm]t11000t1mtmm

U=AT

  • 這裏的T矩陣是Schmidt 正交化的變換矩陣,由於
    tii=xii1j=1<uj,xi>uj1

    矩陣T是非奇異的,同時T1 也同樣爲上三角矩陣,令Q=UR=T1 ,我們便可以得到A=QR

對於矩陣的QR分解其實還有很多種方法除了上面提到的Schmidt 正交化,還有利用矩陣的初等變換、利用Givens變換求QR分解等方法

3.2 QR分解的應用

QR分解在實際工程問題中得到了廣泛的應用,其核心還是圍繞着利用QR分解求解矩陣的特徵值進行的,這裏列舉出一些常見的例子

四、Schur分解

基於QR分解我們可以推導出Schur分解,同時,Schur分解也是很多重要理論推導的基石,是很多重要定理證明的出發點。在介紹Schur分解之前,我們需要先了解一下什麼是酉矩陣(unitary matrix)

4.1 什麼是酉矩陣?

4.1.1 “等距”(isometry)

對於一個矩陣 UϵFn×m ,如果 UHU=I (H爲共軛轉置)我們便稱 U 爲一個等距(isometry),它的所有列向量是正交的。等距作爲一個線性變換時是保內積運算,同時也是保模長運算,即

<Ux,Uy>=<x,y>

Ux=<Ux,Uy>1/2=<x,y>1/2=x

4.1.2 “協等距”(co-isometry)

對於一個矩陣 UϵFn×m ,如果 UUH=I 我們便稱 U 爲一個協等距(isometry),它的所有的行向量是正交的。

4.1.3 酉矩陣(unitary matrix)

一個矩陣如果既滿足等距,又滿足協等距,我們便就稱它爲酉矩陣,它的最大特點在於U1=UH 。酉矩陣其實是正交矩陣在複數域上的推廣,它滿足

UUH=UHU=I

4.2 Schur分解的定義與推導

方陣 AϵFn×n 具有特徵值 λ1,λ2,,λn ,則存在一個酉矩陣 UϵCn×n 使得

UHAU=T

T 爲一個上三角矩陣,它的對角線元素 tii=λi 。現在來證明Schur分解的存在

  • xi 爲對應於特徵值 λi 的特徵向量,令 X1=[x1,x2,,xn]

  • X1 進行QR分解,可以得到X1=Q1R1Q1 這裏是酉矩陣,R1 是上三角矩陣。要注意的是 Q1 的第一列仍然是 A 對應於特徵值 λi 的特徵向量,因此有

    QH1AQ1=[λ10A1]

    這裏 A1ϵC(n1)×(n1) ,它的特徵值爲 λ2,,λn

  • 使用同樣的步驟,我們又可以得到一個酉矩陣 Q2ϵC(n1)×(n1) ,得到

    QH2A1Q2=[λ20A2]

    再令
    U2=[100Q2]

    於是有
    U_{2}^{H}Q_{1}^{H}AQ_{1}U_{2} =
    λ100λ20A2

    -重複上述步驟,得到酉矩陣 QiϵC(ni+1)×(ni+1) 可以使

    QHiAi1Qi=[λi0Ai]

    以及 UiϵCn×n
    Ui=[I00Qi]

  • 最後矩陣U=Q1U2Un1 即爲所求的酉矩陣

4.3 Schur分解的缺陷

Schur分解將原方陣轉化爲了一個對角線爲特徵值的上三角矩陣,在這一章節的開頭已經說過Schur分解是很多重要定理推導的基石與出發點。但是矩陣的Schur分解,在更多意義上是一種理論上的存在,在實際中通常不方便通過有限次運算得到,真正要計算時,一般也是通過迭代的方法進行逼近

五、奇異值分解(SVD)

我們在第一章節中就介紹了特徵值分解,這是一個很好的提取矩陣特徵的方法,但是,特徵值分解只能對方陣使用,在實際問題中,我們解決問題所遇到的矩陣往往都不是方陣,那麼,我們怎麼樣來描述一個普通矩陣的重要特徵呢?奇異值分解爲我們提供了一種可以用於任意矩陣分解的方法,這是這篇文章中最重要也是最核心的部分

5.1奇異值分解的定義與推導

對於一個矩陣 AϵFm×n ,可將其寫成如下形式

A=UΛVT

其中 UϵFm×m 的酉矩陣,被稱爲左奇異向量;ΛϵFm×n 的半正定對角矩陣; VHϵFn×nV 的共軛轉置,被稱爲右奇異向量。這樣的分解就叫做奇異值分解,Λ 對角線上的元素λi 即爲原矩陣A 的奇異值,奇異值一般按照從大到小排列,即
λ1>=λ2>=>=λmin(n,m)

奇異值分解的推導可以從特徵值分解開始

  • 首先,我們對n階對稱方陣 ATA 作特徵值分解,得到

    ATA=VΛVT

  • 通過特徵值分解我們得到一組正交基 V=(v1,v2,,vn) ,滿足如下性質

    (ATA)vi=λivi

    由於ATA 爲對稱矩陣,vi 之間兩兩相互正交,所以有
    <Avi,Avj>=vTi(ATA)vj=vTiλjvj=λjvTivj=0

  • 因爲rank(ATA)=rank(A)=r ,我們可以得到另一組正交基 Av1,Av1,,Avr 將其標準化有

    ui=Avi|Avi|=1λAvi

    Avi=λiui=δiui

    注:
    |Avi|2=<Avi,Avi>=λivTivi=λi

  • 將向量組 (u1,u2,,ur) 擴充爲Fm 中的標準正交基(u1,u2,,ur,,um) 則:

    AV=A(v1,v2,,vn)=(Av1,Av2,,Avr,0,,0)=(δ1u1,δ2u2,,δrur,0,,0)=UΛ

    由此,可以得到奇異值分解的形式
    A=UΛVT

5.2 奇異值分解的求解

我們現在已經知道了奇異值分解的具體形式,那麼奇異值和奇異向量到底怎樣求解呢?

5.2.1奇異值的計算

  • 對於較小維度的矩陣,我們可以從奇異值分解的推導中看出,奇異值δi=λi。於是可以通過求解原矩陣的轉置與其自身相乘得到的矩陣的特徵值,再對該特徵值求平方根的方法求得矩陣的奇異值

  • 高緯度的矩陣的奇異值的計算是一個難題,是一個O(N^3)的算法,隨着規模的增長,計算的複雜度會呈現出3次方的擴大,感興趣的朋友可以看這裏

5.2.1奇異向量的計算

在奇異值分解中,有一個十分重要的推論,那就是在式A=UΛVT 裏,U的列向量爲AAT 的特徵向量,V的列向量爲ATA 的特徵向量。知道這一推論,我們在計算出特徵值之後就可以較爲方便的求出矩陣的特徵向量

5.3 奇異值分解的意義

奇異值分解的目的在於,找到一組正交基,使得矩陣在變換過後是正交的,這是奇異值分解的精髓所在。

5.3.1 數據降維壓縮

奇異值往往對應着矩陣中隱含的重要信息,且重要性和奇異值的大小正相關,對於這一解釋的最大應用就在與圖像的壓縮。可以將矩陣表示爲若干個秩一矩陣之和

A=δ1u1vT1+δ2u2vT2++δrurvTr

我們知道,矩陣的奇異值一般按照降序排列即
λ1>=λ2>=>=λmin(n,m)>0

一般來說,前10%甚至1%的奇異值之和就可以佔到全部奇異值的99%以上,也就是說,我們可以使用奇異值較大的一些特徵來表示圖像,省略去較小的奇異值(絕大多數奇異值),來實現圖像的降維壓縮,這裏以知乎上的一名匿名網友的回答爲例

左上:原圖 ; 右上:保留前五項 ; 左下:保留前二十項 ; 右下:保留前五十項
這裏寫圖片描述

這裏寫圖片描述

原圖的維度遠遠超過10000維,而通過奇異值分解,從上圖可以看出,我們只需要保留前50項,就可以很好的復原圖像,即實現圖像的壓縮。除了實現對圖像的壓縮外,奇異值分解在好友推薦算法,工業過程故障診斷等領域均有廣泛應用。

5.3.2 幾何的線性變換

奇異值分解的幾何意義與特徵值分解也極爲相似,即奇異向量代表着線性變換的方向,而奇異值表示着在這個方向上變化的大小。這裏舉一個較爲有名的橢圓變換爲例

假設矩陣A的奇異值分解爲

A=[u1u2][3001][vT1vT2]

其中 u1,u2,v1,v2 是二維平面的向量,根據奇異值分解的性質,u1,u2 線性無關,v1,v2 線性無關。那麼對二維平面上任意的向量x ,都可以表示爲:x=a1v1+a2v2 ,當A作用在x 上時
y=Ax=A[v1v2][aT1aT2]=[u1u2][3001][vT1vT2][v1v2][aT1aT2]=3a1u1+a2u2

η1=3a1, η2=a2 ,我們可以得出結論:如果x 是在單位圓ai21+ai22=1 上,那麼y 正好在橢圓η21/32+η22/12=1 上。這表明:矩陣A將二維平面中單位圓變換成橢圓,而兩個奇異值正好是橢圓的兩個半軸長,長軸所在的直線是span{u1} ,短軸所在的直線是span{u2}

推廣到一般情形:一般矩陣A將單位球x2=1 變換爲超橢球面Em={yFm: y=Ax, xFn, x2=1} ,那麼矩陣A的每個奇異值恰好就是超橢球的每條半軸長度。
這裏寫圖片描述


參考文獻:


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