1. 前言
最近幾天一直在學習矩陣的知識,惡補了特徵分解和SVD算法,發現網上很多資料都是不全的,所以想記錄一下這裏面的特徵分解推導過程+奇異值分解(SVD)推導過程
要看懂下面的方法,可以提前看矩陣的一些基礎知識:
https://blog.csdn.net/qq_30232405/article/details/104588293
特徵分解的具體推導過程可以參考:
https://blog.csdn.net/qq_30232405/article/details/104588455
2.矩陣分析
2.2 奇異值分解(SVD)
特徵分解因爲只能用在方陣中,所以需要一個能夠處理非方陣的特徵分解,而奇異值分解恰好能夠對非方陣進行處理。
2.2.1 SVD定理
設Xn×p的秩爲rank(X)=r,根據特徵分解公式,XTX構成一個方陣,其特徵值從大到小排列爲[λ1,λ2,...,λr],記Λ21=diag(λ121,λ221,...,λr21)。則存在正交矩陣Pp×p和Qn×n使得X=QΛ21PT,其中P的列向量組爲XTX的p個特徵值(λ1,λ2,...,λr,0,...,0)對應的特徵向量組,Q的列向量組爲與XXT的n個特徵值(λ1,λ2,...,λr,0,...,0)對應的特徵向量組。
2.2.2 從結論反推的證明過程
XTX是一個方陣,且爲實對稱矩陣,令矩陣P=(α1,α2,...,αr,αr+1,...,αp),則根據方陣的特徵分解公式,得到以下公式:
{XTXαi=λiαi i=1,2,..,rXTXαi=0 i=r+1,..,p(2-11)
若要找一個Q=(β1,...,βn)滿足條件↔滿足條件的Q,使得滿足下面公式
QΛ21PT=X↔QΛ21=XP(2-12)
將上面的公式進行化簡:
βiλi=Xαi↔βi=λiXαi i=1,2,...,r(2-13)
公式(2-8)此時就轉化爲考察如下三個問題:
- 1)這些βi是否分別對應了XXT的特徵λi
- 2)它們是否相互兩兩正交
- 3)是否能找到其餘符合條件的n−r個特徵向量與β1,...,βr一起構成正交陣Q
問題1):
XXTβi=λiXXTXαi=λiX(λiαi)=λiXαi=λiβi, i=1,...,r
剛好可以構成特徵分解公式。
問題2):
∀i,j=1,2...,3→βiTβj=λiλjαiTXTXαj=λiλjαiT(λjαj)=λiλjαiTαj={1 i=j0 i=j
問題3):只要取XXT零空間的規範正交基βr+1,...,βn就可以滿足條件。
在特徵分解中,如果λ=0,意味着特徵向量存在於矩陣的零空間中。同時矩陣XXT爲對稱矩陣,因此對稱陣不同特徵值對應的特徵向量兩兩正交,也即是βi(i=1,..,r)與零空間中的特徵向量正交,利用零空間中的特徵向量進行擴展基, 從而可以得到規範正交基βr+1,...,βn。
2.2.3 從條件正推的證明過程
XTX是一個方陣,且爲實對稱矩陣,令矩陣P=(α1,α2,...,αr,αr+1,...,αp),則根據方陣的特徵分解公式,得到以下公式:
XTX=PDPT
根據對稱矩陣特徵分解的性質,因此P中任意兩個列向量正交:
XTXαi=λiαi
(Xαi,Xαj)=(Xαi)TXαj=αiTXTXαj=αiTλjαj=λjαiTαj=0
這時候對Xαi標準化:
βi=∣Xαi∣Xαi=λiXαi→Xαi=λiβi
其中∣Xαi∣由下面公式可得:
∣Xαi∣2=(Xαi)TXαi=λiαiTαi=λi→∣Xαi∣=λi
最後利用擴展基定理,將向量組(β1,...,βr)擴充爲 Rm中的標準正交基(β1,...,βn),然後可以得到下面公式:
XP=X(α1,α2,...,αr,αr+1,...,αp)=(Xα1,Xα2,...,Xαr,0,...,0)=(λ1β1,λ2β2,...,λrβr,0,...,0)→A=QΛ21PT
2.3 特徵分解和奇異值分解的關係
從上面中可以推導出他們的關係:
-
SVD中的奇異值Λ21爲XTX的特徵值的開方所構成
-
右奇異值向量爲XTX的特徵向量
-
左奇異值向量爲βi=λiXαi