奇异值分解(SVD)相关知识
文章目錄
- 奇異值分解的主要思想
- 主要性質
- 計算過程
- 幾何解釋
- 奇異值分解形式
奇異值分解的主要思想
奇異值(singular value decomposition, SVD)是一種矩陣因子分解方法。
其主要思想是:任意一個m×nm\times nm×n 矩陣都可以表示為三個矩陣的乘積(因子分解)形式,即:
A=UΣVTA=U\Sigma V^\mathrm T A=UΣVT
UΣVTU\Sigma V^\mathrm TUΣVT稱為矩陣A的奇異值分解,并不要求A為方陣。其中 UUU 是mmm 階正交矩陣,VVV 是 nnn 階正交矩陣, Σ\SigmaΣ 是由降序排序的非負的對角線元素組成的m×nm\times nm×n 矩形對角矩陣。且滿足:
UUT=IVVT=IΣ=diag(σ1,σ2,…,σp)σ1≥σ2≥…≥σp≥0p=min?(m,n)U U^{\mathrm T} = I \\ V V^{\mathrm T} = I \\ \Sigma = diag(\sigma_1,\sigma_2,\ldots,\sigma_p)\\ \sigma_1 \geq \sigma_2 \geq\ldots\geq\sigma_p \geq0 \\ p = \min(m,n) UUT=IVVT=IΣ=diag(σ1?,σ2?,…,σp?)σ1?≥σ2?≥…≥σp?≥0p=min(m,n)
σi\sigma_iσi? 稱為矩陣A的奇異值,U的列向量稱為左奇異向量,V的列向量稱為右奇異向量。
主要性質
(1)假設矩陣A的奇異值分解為:A=UΣVTA=U\Sigma V^\mathrm TA=UΣVT,則以下關系成立:
ATA=(UΣVT)T(UΣVT)=V(ΣTΣ)VTAAT=(UΣVT)(UΣVT)T=U(ΣTΣ)UTA^\mathrm{T}A = (U\Sigma V^{T})^T(U\Sigma V^{T}) = V(\Sigma^T\Sigma)V^T \\ A A^\mathrm{T}= (U\Sigma V^{T})(U\Sigma V^{T})^T = U(\Sigma^T\Sigma)U^T ATA=(UΣVT)T(UΣVT)=V(ΣTΣ)VTAAT=(UΣVT)(UΣVT)T=U(ΣTΣ)UT
說明AATAA^\mathrm{T}AAT和ATAA^\mathrm{T}AATA作為對稱矩陣,特征分解存在,且可由矩陣AAA的奇異值分解的矩陣表示。
(2)矩陣A的奇異值分解中,奇異值、左奇異向量和右奇異向量之間存在對應關系。
已知正交矩陣U滿足:U?1=UTU^{-1}=U^{\mathrm T}U?1=UT ,由A=UΣVTA = U \Sigma V^{T}A=UΣVT 易知:
AV=UΣAV = U \Sigma AV=UΣ
比較等式兩端的第 j 列,展開則有:
Avj=σjujj=1,2,…,nA v_{j} = \sigma_{j} u_{j} \qquad j = 1,2,\ldots,n Avj?=σj?uj?j=1,2,…,n
這就是奇異值、左奇異向量和右奇異向量之間的關系。進一步可以得到:
uj=1σjAvju_{j} = \frac{1}{\sigma_{j}} A v_{j} uj?=σj?1?Avj?
(3)矩陣AAA的奇異值分解中,奇異值是唯一的,即:Σ\SigmaΣ 唯一,但是矩陣UUU和VVV不是唯一的。
(4)rank(A)=rank(Σ)=正奇異值個數rank(A) = rank(\Sigma)=正奇異值個數rank(A)=rank(Σ)=正奇異值個數
計算過程
根據性質(1)ATA=(UΣVT)T(UΣVT)=V(ΣTΣ)VTA^\mathrm{T}A = (U\Sigma V^{T})^T(U\Sigma V^{T}) = V(\Sigma^T\Sigma)V^TATA=(UΣVT)T(UΣVT)=V(ΣTΣ)VT ,ATAA^\mathrm{T}AATA的特征向量構成正交矩陣VVV 的列;ATAA^\mathrm{T}AATA的特征值λj\lambda_jλj? 的平方根為奇異值σi\sigma_iσi? ;即:
σj=λjj=1,2,…,n\sigma_j = \sqrt{\lambda_j} \qquad j=1,2,\ldots,n σj?=λj??j=1,2,…,n
對其由大到小排列組為對角線元素,構成對角矩陣Σ\SigmaΣ 。
具體過程如下:
(1)首先求ATAA^{\mathrm T} AATA 的特征值和特征向量。
計算對稱矩陣W=ATAW = A^{\mathrm T} AW=ATA。
求解特征方程:
(W?λI)x=0(W-\lambda I)x = 0 (W?λI)x=0
特征值λi\lambda_iλi? 從大到小排序:
λ1≥λ2≥…≥λn≥0\lambda_1 \geq \lambda_2 \geq \ldots\geq \lambda_n \geq 0 λ1?≥λ2?≥…≥λn?≥0
求特征值λi\lambda_iλi? 對應的特征向量。
(2)將特征向量單位化,得到對應特征值的特征向量v1,v2,…,vnv_1,v_2,\ldots,v_nv1?,v2?,…,vn?,構成n 階正交矩陣VVV:
V=[v1v2…vn]V = [v_1 \quad v_2 \ldots v_n] V=[v1?v2?…vn?]
(3)求m×nm\times nm×n 對角矩陣Σ\SigmaΣ
計算A的奇異值:
σi=λi\sigma_i = \sqrt{\lambda_i} σi?=λi??
構造m×nm\times nm×n 矩形對角矩陣Σ\SigmaΣ ,主對角線元素是奇異值,其余元素是零:
Σ=diag(σ1,σ2,…,σn)\Sigma = diag(\sigma_1,\sigma_2,\ldots,\sigma_n) Σ=diag(σ1?,σ2?,…,σn?)
(4)求mmm 階正交矩陣UUU
對AAA的前rrr 個正奇異值,令:
uj=1σjAvj,j=1,2,…ru_{j} = \frac{1}{\sigma_{j}} A v_{j},\quad j=1,2,\ldots r uj?=σj?1?Avj?,j=1,2,…r
得到:
U1=[u1u2…ur]U_1 = [u_1 \quad u_2 \ldots u_r] U1?=[u1?u2?…ur?]
求ATA^{\mathrm T}AT 的零空間的一組標準正交基{ur+1ur+2…um}\{u_{r+1} \quad u_{r+2}\quad \ldots u_{m}\}{ur+1?ur+2?…um?},令:
U2=[ur+1ur+2…um]U_2 = [u_{r+1} \quad u_{r+2} \ldots u_m] U2?=[ur+1?ur+2?…um?]
并令:
U=[U1U2]U = [U_1 \quad U_2] U=[U1?U2?]
(5)得到奇異值分解:
A=UΣVTA= U \Sigma V^T A=UΣVT
幾何解釋
從線性變換的角度解釋奇異值分解。設存在這樣一個線性變換:
T:x→AxT : x \rightarrow A x T:x→Ax
x∈Rn,Ax∈Rmx\in R^n,Ax \in R^mx∈Rn,Ax∈Rm,x,Axx,Axx,Ax 分別是各自空間的向量,并且有Ax=UΣVTxA x =U\Sigma V^\mathrm TxAx=UΣVTx。線性變換的解釋可以按UΣVTxU\Sigma V^\mathrm TxUΣVTx的計算順序分解為三個簡單的變換:
(1)一個坐標系的旋轉或反射變換:VTV^\mathrm{T}VT。
(2)一個坐標軸的縮放變換:Σ\SigmaΣ。
(3)另一個坐標系的旋轉或反射變換:UUU。
奇異值分解過程:A=UΣVTA=U\Sigma V^\mathrm TA=UΣVT ,U、VU、VU、V 是正交矩陣,VVV 可以理解為列向量v1,v2…,vnv_1,v_2\ldots,v_nv1?,v2?…,vn? 構成RnR^nRn 空間的一組標準正交基。 UUU 可以理解為列向量u1,u2…,unu_1,u_2\ldots,u_nu1?,u2?…,un? 構成RnR^nRn 空間的一組標準正交基。 Σ\SigmaΣ 的對角線元素σ1,σ2…,σn\sigma_1,\sigma_2\ldots,\sigma_nσ1?,σ2?…,σn? 是一組非負實數,表示 RnR^nRn 空間中原始坐標系坐標軸的σ1,σ2…,σn\sigma_1,\sigma_2\ldots,\sigma_nσ1?,σ2?…,σn? 倍的縮放變換。
任意一個向量x∈Rnx\in R^nx∈Rn,經過基于A=UΣVTA=U\Sigma V^\mathrm TA=UΣVT 的線性變換,等價于上述的三個過程,具體如下圖所示:
奇異值分解形式
奇異值分解A=UΣVTA=U\Sigma V^\mathrm TA=UΣVT 又稱矩陣的完全奇異值分解。實際常用的是奇異值分解的緊湊形式和截斷形式。緊湊形式分解是與原始矩陣等秩的奇異值分解,截斷奇異值分解是比原始矩陣低秩的奇異值分解。
(1)緊奇異值分解
緊奇異值分解:
A=UrΣrVrTA=U_r\Sigma_r V_r^\mathrm T A=Ur?Σr?VrT?
其中,r=rank(A)r=rank(A )r=rank(A) 。
這種分解的對角矩陣Σr\Sigma_rΣr? 的秩和原始矩陣A的秩相等。
(2)截斷奇異值分解
A≈UkΣkVkTA\approx U_k\Sigma_k V_k^\mathrm T A≈Uk?Σk?VkT?
其中,rank(A)=r且0<k<rrank(A) = r 且 0 < k < rrank(A)=r且0<k<r。
這種分解的對角矩陣Σr\Sigma_rΣr? 的秩比原始矩陣A的秩低。
參考文章:
《統計學習方法 第二版》
總結
以上是生活随笔為你收集整理的奇异值分解(SVD)相关知识的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 梯度提升树(GBDT)相关知识
- 下一篇: Flash中MP3如何导入及同步歌词