奇异值分解(SVD)
目录
一、基本原理
二、实例
一、基本原理
1. 特征值分解
特征值与特征向量的定义如下:
A
x
=
λ
x
(1)
Ax=\lambda x \tag{1}
Ax=λx(1)
其中,
A
n
×
n
A_{n \times n}
An×n是
n
×
n
n \times n
n×n方阵,
x
n
×
1
x_{n \times 1}
xn×1是A的某一方向上的
n
×
1
n \times 1
n×1特征向量,
λ
\lambda
λ是该特征向量对应的特征值。
将A方阵的特征值
λ
i
\lambda_i
λi沿对角线组合成为对角矩阵
Σ
m
×
m
\Sigma_{m \times m}
Σm×m,特征向量
x
i
x_i
xi合并成为
X
n
×
m
X_{n \times m}
Xn×m,将定义整体向量化后有:
A
=
X
Σ
X
−
1
(2)
A=X \Sigma X^{-1} \tag{2}
A=XΣX−1(2)
该式即为
A
A
A的特征值分解。其中,
Σ
m
×
m
=
[
λ
1
λ
2
λ
3
⋱
λ
m
]
\Sigma_{m \times m}=\left[ \begin{matrix} \lambda_1 \\ & \lambda_2 \\ && \lambda_3 \\ &&& \ddots \\ &&&& \lambda_m \end{matrix} \right]
Σm×m=⎣⎢⎢⎢⎢⎡λ1λ2λ3⋱λm⎦⎥⎥⎥⎥⎤,
X
n
×
m
=
[
x
1
(
1
)
x
2
(
1
)
x
3
(
1
)
⋯
x
m
(
1
)
x
1
(
2
)
x
2
(
2
)
x
3
(
2
)
⋯
x
m
(
2
)
⋮
⋮
⋮
⋮
⋮
x
1
(
n
)
x
2
(
n
)
x
3
(
n
)
⋯
x
m
(
n
)
]
X_{n \times m}=\begin{bmatrix} x^{(1)}_1 & x^{(1)}_2 & x^{(1)}_3 & \cdots & x^{(1)}_m \\ x^{(2)}_1 & x^{(2)}_2 & x^{(2)}_3 & \cdots & x^{(2)}_m \\ \vdots & \vdots & \vdots & \vdots & \vdots \\ x^{(n)}_1 & x^{(n)}_2 & x^{(n)}_3 & \cdots & x^{(n)}_m \\ \end{bmatrix}
Xn×m=⎣⎢⎢⎢⎢⎡x1(1)x1(2)⋮x1(n)x2(1)x2(2)⋮x2(n)x3(1)x3(2)⋮x3(n)⋯⋯⋮⋯xm(1)xm(2)⋮xm(n)⎦⎥⎥⎥⎥⎤.
因为矩阵求逆的运算计算机求解很慢,所以将特征向量
x
i
x_i
xi标准化,即令
∥
x
i
∥
2
=
1
↔
x
i
T
x
i
=
1
\color{Maroon}{{\begin{Vmatrix}x_i \end{Vmatrix}}_2=1 \leftrightarrow x^T_i x_i=1}
∥∥xi∥∥2=1↔xiTxi=1,此时
X
X
X的
m
m
m个特征向量为标准正交基,故
X
X
X满足
X
T
X
=
I
→
X
−
1
=
X
T
X^TX=I \rightarrow X^{-1}=X^T
XTX=I→X−1=XT,
X
X
X为酋矩阵(正交矩阵)。原特征分解式(2)转换为如下形式:
A
=
X
Σ
X
T
(3)
A=X \Sigma X^T \tag{3}
A=XΣXT(3)
2.奇异值分解
特征值分解要求A必须为方阵,为了推广到一般情况,通常采用奇异值分解,定义如下:
A
=
U
Σ
V
T
(4)
A=U \Sigma V^T \tag{4}
A=UΣVT(4)
其中,
A
m
×
n
A_{m \times n}
Am×n是
m
×
n
m \times n
m×n矩阵,
U
m
×
m
U_{m \times m}
Um×m为左奇异矩阵,
Σ
m
×
n
\Sigma_{m \times n}
Σm×n为奇异值矩阵,
V
n
×
n
V_{n \times n}
Vn×n为右奇异矩阵。
U
m
×
m
U_{m \times m}
Um×m和
V
n
×
n
V_{n \times n}
Vn×n均为酋矩阵(即已经经过标准化),
Σ
m
×
n
\Sigma_{m \times n}
Σm×n主对角线上奇异值从大到小排列,其余元素均为0。
奇异值分解与特征值分解密切相关,推导二者关系的过程如下:
假设有 m × n m \times n m×n矩阵 A m × n A_{m \times n} Am×n,已知 A = U Σ V T A=U \Sigma V^T A=UΣVT,为满足特征值分解方阵条件,使用 A A T AA^T AAT和 A T A A^TA ATA有:
A T = ( U Σ V T ) T = ( V T ) T Σ T U T = V Σ T U T → { A A T = U Σ V T V Σ T U T A T A = V Σ T U T U Σ V T ∵ U m × m 和 V n × n 均 为 酋 矩 阵 ∴ U T = U − 1 , V T = V − 1 ∵ Σ m × n 除 主 对 角 线 , 其 余 元 素 均 为 0 ∴ Σ Σ T = ( Σ m × m ) 2 ; Σ T Σ = ( Σ n × n ) 2 代 入 上 式 即 有 : { A A T = U ( Σ m × m ) 2 U T A T A = V ( Σ n × n ) 2 V T A^T=(U \Sigma V^T)^T={(V^T)}^T {\Sigma}^T U^T=V {\Sigma}^T U^T \\ \rightarrow \begin{cases} AA^T={U \Sigma V^T}{V {\Sigma}^T U^T} \\ A^TA={V {\Sigma}^T U^T}{U \Sigma V^T} \end{cases} \\\\ \because U_{m \times m}和V_{n \times n}均为酋矩阵 \\ \therefore U^T=U^{-1},V^T=V^{-1} \\\\ \because \Sigma_{m \times n}除主对角线,其余元素均为0 \\ \therefore {\Sigma \Sigma^T}={(\Sigma_{m \times m})}^2;{\Sigma^T \Sigma}={(\Sigma_{n \times n})}^2 \\\\ 代入上式即有: \begin{cases} AA^T={U {(\Sigma_{m \times m})}^2 U^T} \\ A^TA={V {(\Sigma_{n \times n})}^2 V^T} \\ \end{cases} AT=(UΣVT)T=(VT)TΣTUT=VΣTUT→{AAT=UΣVTVΣTUTATA=VΣTUTUΣVT∵Um×m和Vn×n均为酋矩阵∴UT=U−1,VT=V−1∵Σm×n除主对角线,其余元素均为0∴ΣΣT=(Σm×m)2;ΣTΣ=(Σn×n)2代入上式即有:{AAT=U(Σm×m)2UTATA=V(Σn×n)2VT
注意:上述
Σ
m
×
m
\Sigma_{m \times m}
Σm×m和
Σ
n
×
n
\Sigma_{n \times n}
Σn×n表示原
Σ
m
×
n
\Sigma_{m \times n}
Σm×n经过
Σ
Σ
T
{\Sigma \Sigma^T}
ΣΣT和
Σ
T
Σ
{\Sigma^T \Sigma}
ΣTΣ后还原而来,以此体现出奇异值
σ
i
\sigma_i
σi与特征值
λ
i
\lambda_i
λi的关系:
σ
i
=
λ
i
\sigma_i=\sqrt{\lambda_i}
σi=λi
分别将上述 ( A A T ) (AA^T) (AAT)和 ( A T A ) (A^TA) (ATA)的结果与特征值分解 B = X Σ X T B=X \Sigma X^T B=XΣXT对比发现:
A A T AA^T AAT的特征向量就是 A m × n A_{m \times n} Am×n的左奇异矩阵 U U U
A T A A^TA ATA的特征向量就是 A m × n A_{m \times n} Am×n的右奇异矩阵 V V V
A A T ( A T A ) AA^T(A^TA) AAT(ATA)的特征值就是 A m × n A_{m \times n} Am×n的奇异值的平方
二、实例
问:假设我们有特征矩阵
m
×
n
m{\times}n
m×n的矩阵
A
2
×
2
A_{2\times 2}
A2×2,求A的左奇异矩阵
U
U
U、奇异值矩阵
Σ
\Sigma
Σ、右奇异矩阵
V
V
V。
A
=
[
3
0
4
5
]
2
×
2
A={ \left[ \begin{matrix} 3 & 0 \\ 4 & 5 \\ \end{matrix} \right] }_{2\times 2}
A=[3405]2×2
通过求解 A A T AA^T AAT 和 A T A A^TA ATA 特征值分解后的特征值与特征向量,进而求解左右奇异矩阵和奇异值矩阵,以求解 A T A A^TA ATA的特征值分解为例:
解:
A T A = [ 3 4 0 5 ] [ 3 0 4 5 ] = [ 25 20 20 25 ] A^TA={\left[ \begin{matrix} 3 & 4 \\ 0 & 5 \\ \end{matrix} \right] } {\left[ \begin{matrix} 3 & 0 \\ 4 & 5 \\ \end{matrix} \right] } = {\left[ \begin{matrix} 25 & 20 \\ 20 & 25 \\ \end{matrix} \right] } \\ ATA=[3045][3405]=[25202025]
∵ \because ∵ 特征值分解满足: B x i = λ i x i Bx_i=\lambda_ix_i Bxi=λixi ( x i x_i xi为特征向量, λ i \lambda_i λi为对应特征值)
∴ \therefore ∴ ( B − λ i I ) x i = 0 (B-\lambda_i I)x_i=0 (B−λiI)xi=0, d e t ( B − λ i I ) = 0 det(B-\lambda_iI)=0 det(B−λiI)=0的解即为特征值.
∣ A T A − λ I ∣ = ∣ 25 − λ 20 20 25 − λ ∣ = ( 25 − λ ) 2 − 400 = 0 \begin{vmatrix} A^TA-\lambda I \end{vmatrix}= \begin{vmatrix} 25-\lambda & 20 \\ 20 & 25-\lambda \end{vmatrix}= (25-\lambda)^2-400=0 ∣∣ATA−λI∣∣=∣∣∣∣25−λ202025−λ∣∣∣∣=(25−λ)2−400=0解 得 : λ 1 = 45 , λ 2 = 5 解得:\lambda_1=45,\lambda_2=5 解得:λ1=45,λ2=5
将特征值 λ i \lambda _i λi代入 ( A T A − λ i I ) x i = 0 (A^TA-{\lambda}_i I)x_i=0 (ATA−λiI)xi=0 并进行标准化(保证正交性)有:
(1)对于 λ 1 = 45 \lambda_1=45 λ1=45,对应特征向量 x 1 x_1 x1为:
[ 25 − 45 20 20 25 − 45 ] [ x 1 1 x 1 2 ] = 0 ⇒ x 1 1 = x 1 2 标 准 化 x i : ∥ x i ∥ = 1 ⇒ x 1 = [ 1 2 1 2 ] \left[ \begin{matrix} 25-45 & 20 \\ 20 & 25-45 \end{matrix} \right] \left[ \begin{matrix} x_1^1 \\ x_1^2 \end{matrix} \right]=0 \Rightarrow x_1^1=x_1^2 \\ 标准化x_i: \begin{Vmatrix} x_i \end{Vmatrix}=1 \Rightarrow x_1= { \left[ \begin{matrix} \frac{1}{\sqrt 2} \\ \frac{1}{\sqrt 2} \end{matrix} \right] } [25−45202025−45][x11x12]=0⇒x11=x12标准化xi:∥∥xi∥∥=1⇒x1=[2121]
(2)对于 λ 2 = 5 \lambda_2=5 λ2=5,对应特征向量 x 2 x_2 x2为:[ 25 − 5 20 20 25 − 5 ] [ x 2 1 x 2 2 ] = 0 ⇒ x 2 1 = − x 2 2 标 准 化 x i : ∥ x i ∥ = 1 ⇒ x 2 = [ 1 2 − 1 2 ] \left[ \begin{matrix} 25-5 & 20 \\ 20 & 25-5 \end{matrix} \right] \left[ \begin{matrix} x_2^1 \\ x_2^2 \end{matrix} \right]=0 \Rightarrow x_2^1=-x_2^2 \\ 标准化x_i: \begin{Vmatrix} x_i \end{Vmatrix}=1 \Rightarrow x_2= { \left[ \begin{matrix} \frac{1}{\sqrt 2} \\ -\frac{1}{\sqrt 2} \end{matrix} \right] } [25−5202025−5][x21x22]=0⇒x21=−x22标准化xi:∥∥xi∥∥=1⇒x2=[21−21]
∴ \therefore ∴ 综上:我们得到 A T A A^TA ATA的特征值与特征向量,同理可得 A A T AA^T AAT。对应到A的奇异值分解为:左奇异矩阵 U = [ 1 10 3 10 3 10 − 1 10 ] U={ \left[ \begin{matrix} \frac{1}{\sqrt{10}} & \frac{3}{\sqrt{10}} \\ \frac{3}{\sqrt{10}} & -\frac{1}{\sqrt{10}} \\ \end{matrix} \right] } U=[101103103−101] ,
右奇异向量矩阵 V = [ 1 2 1 2 1 2 − 1 2 ] V={ \left[ \begin{matrix} \frac{1}{\sqrt 2} & \frac{1}{\sqrt 2} \\ \frac{1}{\sqrt 2} & -\frac{1}{\sqrt 2} \end{matrix} \right] } V=[212121−21],奇异值矩阵 Σ = [ 45 0 0 5 ] \Sigma={ \left[ \begin{matrix} \sqrt{45} & 0 \\ 0 & \sqrt{5} \end{matrix} \right] } Σ=[45005](注意:求解后应有 ∣ U ∣ = ∣ V ∣ \begin{vmatrix}U\end{vmatrix}=\begin{vmatrix}V\end{vmatrix} ∣∣U∣∣=∣∣V∣∣).
将计算得到的 U U U, Σ \Sigma Σ, V V V代入奇异值分解 A = U Σ V T A=U \Sigma V^T A=UΣVT验证有:
A = [ 1 10 3 10 3 10 − 1 10 ] [ 45 0 0 5 ] [ 1 2 1 2 1 2 − 1 2 ] = [ 3 0 4 5 ] A= { \left[ \begin{matrix} \frac{1}{\sqrt{10}} & \frac{3}{\sqrt{10}} \\ \frac{3}{\sqrt{10}} & -\frac{1}{\sqrt{10}} \\ \end{matrix} \right] } { \left[ \begin{matrix} \sqrt{45} & 0 \\ 0 & \sqrt{5} \end{matrix} \right] } { \left[ \begin{matrix} \frac{1}{\sqrt 2} & \frac{1}{\sqrt 2} \\ \frac{1}{\sqrt 2} & -\frac{1}{\sqrt 2} \end{matrix} \right] }= { \left[ \begin{matrix} 3 & 0 \\ 4 & 5 \\ \end{matrix} \right] } A=[101103103−101][45005][212121−21]=[3405]