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定理
设 X n × p X_{n \times p} Xn×p的秩为 r a n k ( X ) = r rank(X)=r rank(X)=r,根据特征分解公式, X T X X^{\mathrm{T}}X XTX构成一个方阵,其特征值从大到小排列为 [ λ 1 , λ 2 , . . . , λ r ] [\lambda_1, \lambda_2, ..., \lambda_r] [λ1,λ2,...,λr],记 Λ 1 2 = d i a g ( λ 1 1 2 , λ 2 1 2 , . . . , λ r 1 2 ) \Lambda^{\frac{1}{2}} = diag(\lambda_1^{\frac{1}{2}}, \lambda_2^{\frac{1}{2}}, ..., \lambda_r^{\frac{1}{2}}) Λ21=diag(λ121,λ221,...,λr21)。则存在正交矩阵 P p × p P_{p \times p} Pp×p和 Q n × n Q_{n \times n} Qn×n使得 X = Q Λ 1 2 P T X=Q \Lambda^{\frac{1}{2}} P^{\mathrm{T}} X=QΛ21PT,其中 P P P的列向量组为 X T X X^\mathrm{T}X XTX的 p p p个特征值 ( λ 1 , λ 2 , . . . , λ r , 0 , . . . , 0 ) (\lambda_1, \lambda_2, ..., \lambda_r,0,...,0) (λ1,λ2,...,λr,0,...,0)对应的特征向量组, Q Q Q的列向量组为与 X X T XX^\mathrm{T} XXT的 n n n个特征值 ( λ 1 , λ 2 , . . . , λ r , 0 , . . . , 0 ) (\lambda_1, \lambda_2, ..., \lambda_r,0,...,0) (λ1,λ2,...,λr,0,...,0)对应的特征向量组。
2.2.2 从结论反推的证明过程
X T X X^\mathrm{T}X XTX是一个方阵,且为实对称矩阵,令矩阵 P = ( α 1 , α 2 , . . . , α r , α r + 1 , . . . , α p ) P=(\alpha_1, \alpha_2,...,\alpha_r,\alpha_{r+1},...,\alpha_p) P=(α1,α2,...,αr,αr+1,...,αp),则根据方阵的特征分解公式,得到以下公式:
{ X T X α i = λ i α i i = 1 , 2 , . . , r X T X α i = 0 ⃗ i = r + 1 , . . , p (2-11) \left\{ \begin{aligned} X^\mathrm{T}X \alpha_i = \lambda_i \alpha_i ~~~~ i=1,2,..,r \\ X^\mathrm{T}X \alpha_i = \vec 0 ~~~~ i=r+1,..,p\\ \tag{2-11} \end{aligned} \right. {XTXαi=λiαi i=1,2,..,rXTXαi=0 i=r+1,..,p(2-11)
若要找一个 Q = ( β 1 , . . . , β n ) Q=(\beta_1,...,\beta_n) Q=(β1,...,βn)满足条件 ↔ \leftrightarrow ↔满足条件的 Q Q Q,使得满足下面公式
Q Λ 1 2 P T = X ↔ Q Λ 1 2 = X P (2-12) Q\Lambda^{\frac{1}{2}}P^{\mathrm{T}} = X \leftrightarrow Q\Lambda^{\frac{1}{2}} =XP \tag{2-12} QΛ21PT=X↔QΛ21=XP(2-12)
将上面的公式进行化简:
β i λ i = X α i ↔ β i = X α i λ i i = 1 , 2 , . . . , r (2-13) \beta_i \sqrt \lambda_i = X \alpha_i \leftrightarrow \beta_i = \frac{X \alpha_i}{\sqrt \lambda_i} ~~~~ i=1,2,...,r \tag{2-13} βiλi=Xαi↔βi=λiXαi i=1,2,...,r(2-13)
公式(2-8)此时就转化为考察如下三个问题:
- 1)这些 β i \beta_i βi是否分别对应了 X X T XX^{\mathrm{T}} XXT的特征 λ i \lambda_i λi
- 2)它们是否相互两两正交
- 3)是否能找到其余符合条件的 n − r n−r n−r个特征向量与 β 1 , . . . , β r \beta_1,...,\beta_r β1,...,βr一起构成正交阵 Q Q Q
问题1):
X
X
T
β
i
=
X
X
T
X
α
i
λ
i
=
X
(
λ
i
α
i
)
λ
i
=
λ
i
X
α
i
=
λ
i
β
i
,
i
=
1
,
.
.
.
,
r
XX^{\mathrm{T}}\beta_i=\frac{XX^{\mathrm{T}}X\alpha_i}{\sqrt{\lambda_i}}=\frac{X(\lambda_i\alpha_i)}{\sqrt{\lambda_i}}=\sqrt{\lambda_i}X\alpha_i=\lambda_i \beta_i, ~~i=1,...,r
XXTβi=λiXXTXαi=λiX(λiαi)=λiXαi=λiβi, i=1,...,r
刚好可以构成特征分解公式。
问题2):
∀ i , j = 1 , 2... , 3 → β i T β j = α i T X T X α j λ i λ j = α i T ( λ j α j ) λ i λ j = λ j λ i α i T α j = { 1 i = j 0 i ≠ j \forall i,j=1,2...,3 \to \beta_i^{\mathrm{T}}\beta_j=\frac{\alpha_i^{\mathrm{T} } X^{\mathrm{T}} X \alpha_j}{\sqrt{\lambda_i \lambda_j}} = \frac{\alpha_i^{\mathrm{T}}(\lambda_j \alpha_j)}{\sqrt{\lambda_i \lambda_j}} \\ = \sqrt{\frac{\lambda_j}{\lambda_i}} \alpha_i^\mathrm{T} \alpha_j = \left\{ \begin{aligned} 1 ~~~~ i=j\\ 0 ~~~~ i \neq j \end{aligned} \right. ∀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):只要取 X X T XX^\mathrm{T} XXT零空间的规范正交基 β r + 1 , . . . , β n \beta_{r+1},...,\beta_n βr+1,...,βn就可以满足条件。
在特征分解中,如果 λ = 0 \lambda=0 λ=0,意味着特征向量存在于矩阵的零空间中。同时矩阵 X X T XX^\mathrm{T} XXT为对称矩阵,因此对称阵不同特征值对应的特征向量两两正交,也即是 β i ( i = 1 , . . , r ) \beta_i(i=1,..,r) βi(i=1,..,r)与零空间中的特征向量正交,利用零空间中的特征向量进行扩展基, 从而可以得到规范正交基 β r + 1 , . . . , β n \beta_{r+1},...,\beta_n βr+1,...,βn。
2.2.3 从条件正推的证明过程
X T X X^\mathrm{T}X XTX是一个方阵,且为实对称矩阵,令矩阵 P = ( α 1 , α 2 , . . . , α r , α r + 1 , . . . , α p ) P=(\alpha_1, \alpha_2,...,\alpha_r,\alpha_{r+1},...,\alpha_p) P=(α1,α2,...,αr,αr+1,...,αp),则根据方阵的特征分解公式,得到以下公式:
X T X = P D P T X^\mathrm{T}X=PDP^{\mathrm{T}} XTX=PDPT
根据对称矩阵特征分解的性质,因此
P
P
P中任意两个列向量正交:
X
T
X
α
i
=
λ
i
α
i
X^\mathrm{T}X \alpha_i=\lambda_i \alpha_i
XTXαi=λiαi
( X α i , X α j ) = ( X α i ) T X α j = α i T X T X α j = α i T λ j α j = λ j α i T α j = 0 (X\alpha_i, X\alpha_j) = (X\alpha_i)^\mathrm{T}X\alpha_j \\ = \alpha_i^\mathrm{T} X^\mathrm{T} X \alpha_j \\ = \alpha_i^\mathrm{T} \lambda_j \alpha_j \\ = \lambda_j \alpha_i^\mathrm{T} \alpha_j \\ = 0 (Xαi,Xαj)=(Xαi)TXαj=αiTXTXαj=αiTλjαj=λjαiTαj=0
这时候对 X α i X \alpha_i Xαi标准化:
β i = X α i ∣ X α i ∣ = X α i λ i → X α i = λ i β i \beta_i = \frac{X \alpha_i}{|X \alpha_i|} = \frac{X \alpha_i}{\sqrt{\lambda_i}} \\ \to X \alpha_i = \sqrt{\lambda_i} \beta_i βi=∣Xαi∣Xαi=λiXαi→Xαi=λiβi
其中 ∣ X α i ∣ |X \alpha_i| ∣Xαi∣由下面公式可得:
∣ X α i ∣ 2 = ( X α i ) T X α i = λ i α i T α i = λ i → ∣ X α i ∣ = λ i |X \alpha_i|^2 = (X \alpha_i)^{\mathrm{T}} X \alpha_i = \lambda_i \alpha_i^\mathrm{T} \alpha_i = \lambda_i \\ \to |X \alpha_i| = \sqrt{\lambda_i} ∣Xαi∣2=(Xαi)TXαi=λiαiTαi=λi→∣Xαi∣=λi
最后利用扩展基定理,将向量组 ( β 1 , . . . , β r ) (\beta_1,...,\beta_r) (β1,...,βr)扩充为 Rm中的标准正交基 ( β 1 , . . . , β n ) (\beta_1,...,\beta_n) (β1,...,βn),然后可以得到下面公式:
X P = 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 Λ 1 2 P T XP = X(\alpha_1, \alpha_2,...,\alpha_r,\alpha_{r+1},...,\alpha_p) = (X\alpha_1, X\alpha_2,...,X\alpha_r,0,...,0) \\ = (\sqrt{\lambda_1} \beta_1, \sqrt{\lambda_2} \beta_2,...,\sqrt{\lambda_r} \beta_r,0,...,0) \\ \to A = Q\Lambda^{\frac{1}{2}}P^{\mathrm{T}} 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中的奇异值 Λ 1 2 \Lambda^{\frac{1}{2}} Λ21为 X T X X^\mathrm{T}X XTX的特征值的开方所构成
-
右奇异值向量为 X T X X^\mathrm{T}X XTX的特征向量
-
左奇异值向量为 β i = X α i λ i \beta_i = \frac{X \alpha_i}{\sqrt{\lambda_i}} βi=λiXαi