SVD(Singular Value Decomposition)到底怎麼“湊“出來的?


特徵值分解

首先,從特徵值分解說起。對於NN階矩陣AA,有:
Av=λv A v=\lambda v
其中 vv 是矩陣AA 的特徵向量,λ\lambda 是矩陣AA 的特徵值。

這個式子的一個重要含義:⭐特徵向量被施以線性變換AA只會使向量伸長或縮短,而其方向不會改變

NN階矩陣AA 可分解成如下形式:——稱爲 對角化
A=QΛQ1 A = Q \Lambda Q^{-1}
這裏的:QQ是由特徵向量構成的矩陣;Λ\Lambda是由特徵值構成對角矩陣,與QQ的特徵向量一一對應。

好了,現在只有方陣才能做特徵值分解,那不是方陣怎麼辦?也能分解成這種形式嗎?是的。

奇異值分解

接下來就是奇異值分解(Singular Value Decomposition)

假設有矩陣 Am×nA_{m \times n}

Step1: 轉置相乘湊方陣

定理1:矩陣轉置相乘一定得到對稱矩陣

(很容易證明:假設B=ATAB=A^{T}A,則BT=(ATA)T=ATA=BB^T = (A^T A)^T = A^T A = B,得證)

所以有:
B=AATm×m階方陣C=ATAn×n階方陣(1) B = AA^T \Rightarrow \text{是} m \times m \text{階方陣} \\ C = A^TA \Rightarrow \text{是} n \times n \text{階方陣} \tag{1}

Step2: 對稱矩陣對角化

定理2:設AAnn階實對稱矩陣,則必有正交矩陣PP,使P1AP=PTAP=ΛP^{-1}AP=P^TAP=\Lambda,其中Λ\Lambda是以AAnn個特徵值爲對角元的對角矩陣。(同濟第六版線性代數,第5章第4節,P128頁定理5)

即,實對稱矩陣一定可以對角化,一定可以寫成A=PΛP1A=P\Lambda P^{-1}的形式,而且PP還可以單位化成正交矩陣的形式。假設PP單位化後的正交矩陣爲QQ,正交矩陣滿足QT=Q1Q^T=Q^{-1},所以有:A=QΛQ1=QΛQTA=Q\Lambda Q^{-1} = Q\Lambda Q^{T}

所以有:
Bm×m=AAT=UΛU1=Um×mΛm×mUm×mTCn×n=ATA=VΛV1=Vn×nΛn×nVn×nT(2) B_{m\times m} = AA^T = U \Lambda U^{-1} = U_{m\times m} \Lambda_{m\times m} U_{m\times m}^{T} \\ C_{n\times n} = A^TA = V \Lambda V^{-1} = V_{n\times n} \Lambda_{n\times n} V_{n\times n}^T \tag{2}
其中UUm×mm \times m階的正交矩陣,VVn×nn \times n階的正交矩陣,Λ\Lambda是特徵值組成的對角矩陣。

Step3:特徵值開平方根得奇異值

實數 和 矩陣 的類比:

實數 矩陣
aa \Longleftrightarrow AA
b=a2b = a^2 \Longleftrightarrow B=AATATAB = AA^T 或 A^TA
a=±ba = \pm \sqrt{b} \Longleftrightarrow A=BA=對B進行平方根分解
b=u2λb=u^2\lambda \Longleftrightarrow B=UΛUTB = U \Lambda U^{T}
a=±u2λ=±uλa=\pm \sqrt{u^2\lambda}=\pm u \sqrt{\lambda} \Longleftrightarrow A=UΛA=U\cdot 對\Lambda進行平方根分解

Λ\Lambda 裏的特徵值是BCB,C的特徵值,而BCB,C類似於是AA的“平方”,那我想要得到AA的特徵值,就相當於要對Λ\Lambda“開平方”,即要找到Σ\Sigma,使得:
Λ=ΣTΣ \Lambda = \Sigma^T\Sigma
這其實就是矩陣的Cholesky分解法,又叫平方根分解法

定理:若ARn×nA \in R^{n \times n}對稱正定,則存在一個對角元爲正數的下三角矩陣LRn×nL \in R^{n \times n},使得A=LLTA=LL^T成立。

(如果AA是半正定的(semi-definite),也可以分解,不過這時候LL就不唯一了。)

對角矩陣Λ\Lambda顯然是可以分解的,並且分解還不唯一,但是奇異值我們只取正的:

[λ1λ2λ3]=[λ1λ2λ3][λ1λ2λ3] \left[ \begin{matrix} \lambda_1 & & & \\ & \lambda_2 & & \\ & & \lambda_3 & \\ & & & \ddots \end{matrix} \right] = \left[ \begin{matrix} \sqrt{\lambda_1} & & & \\ & \sqrt{\lambda_2} & & \\ & & \sqrt{\lambda_3} & \\ & & & \ddots \end{matrix} \right] \left[ \begin{matrix} \sqrt{\lambda_1} & & & \\ & \sqrt{\lambda_2} & & \\ & & \sqrt{\lambda_3} & \\ & & & \ddots \end{matrix} \right]

所以我們得到了:
Bm×m=AAT=UΛU1=UΛUT=Um×mΣm×nTΣn×mUm×mTCn×n=ATA=VΛV1=VΛVT=Vn×nΣn×mΣm×nTVn×nT(3) B_{m\times m} = AA^T = U \Lambda U^{-1} = U \Lambda U^{T} = U_{m\times m} \Sigma_{m\times n}^T \Sigma_{n\times m} U_{m\times m}^{T}\\ C_{n\times n} = A^TA = V \Lambda V^{-1} = V \Lambda V^T = V_{n\times n} \Sigma_{n\times m} \Sigma_{m\times n}^T V_{n\times n}^T \tag{3}

Step4:插入正交矩陣湊形式​

UUVV是正交矩陣,滿足UTU=IU^TU=IVTV=IV^TV = I,所以有:
Bm×m=AAT=UΛU1=UΛUT=UΣTΣUT=(Um×mΣm×nTVn×nT)(Vn×nΣn×mUm×mT)Cn×n=ATA=VΛV1=VΛVT=VΣΣTVT=(Vn×nΣn×mUm×mT)(Um×mΣm×nTVn×nT)(4) B_{m\times m} = AA^T = U \Lambda U^{-1} = U \Lambda U^{T} = U \Sigma^T \Sigma U^{T} = (U_{m\times m} \Sigma_{m\times n}^T V_{n\times n}^T) (V_{n\times n} \Sigma_{n\times m} U_{m\times m}^{T}) \\ C_{n\times n} = A^TA = V \Lambda V^{-1} = V \Lambda V^T = V \Sigma \Sigma^T V^T = (V_{n\times n} \Sigma_{n\times m} U_{m\times m}^T) (U_{m\times m} \Sigma_{m\times n}^T V_{n\times n}^T) \tag{4}
最後得到上面兩個式子,由此可以看出:第一個式子左邊括號即爲AA,右邊括號即爲ATA^T;第二個式子左邊括號ATA^T,右邊括號爲AA。所以我們得到的SVD分解爲:
Am×n=Um×mΣm×nTVn×nT A_{m \times n} = U_{m\times m} \Sigma_{m\times n}^T V_{n\times n}^T
我們稱 UU 爲左奇異矩陣,VV 爲右奇異矩陣。

(1)~(4)就是四個步驟的變化過程。

——完——

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