奇异值分解的主要思想
奇异值(singular value decomposition, SVD)是一种矩阵因子分解方法。
其主要思想是:任意一个
m
×
n
m\times n
m×n 矩阵都可以表示为三个矩阵的乘积(因子分解)形式,即:
A
=
U
Σ
V
T
A=U\Sigma V^\mathrm T
A=UΣVT
其中
U
U
U 是
m
m
m 阶正交矩阵,
V
V
V 是
n
n
n 阶正交矩阵,
Σ
\Sigma
Σ 是由降序排序的非负的对角线元素组成的
m
×
n
m\times n
m×n 矩形对角矩阵。且满足:
U
U
T
=
I
V
V
T
=
I
Σ
=
d
i
a
g
(
σ
1
,
σ
2
,
…
,
σ
p
)
σ
1
≥
σ
2
≥
…
≥
σ
p
≥
0
p
=
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的列向量称为右奇异向量。
奇异值分解形式
奇异值分解 A = U Σ V T A=U\Sigma V^\mathrm T A=UΣVT 又称矩阵的完全奇异值分解。实际常用的是奇异值分解的紧凑形式和截断形式。紧凑形式分解是与原始矩阵等秩的奇异值分解,截断奇异值分解是比原始矩阵低秩的奇异值分解。
(1)紧奇异值分解
紧奇异值分解:
A
=
U
r
Σ
r
V
r
T
A=U_r\Sigma_r V_r^\mathrm T
A=UrΣrVrT
其中, r = r a n k ( A ) r=rank(A ) r=rank(A) 。
这种分解的对角矩阵 Σ r \Sigma_r Σr 的秩和原始矩阵A的秩相等。
(2)截断奇异值分解
A
≈
U
k
Σ
k
V
k
T
A\approx U_k\Sigma_k V_k^\mathrm T
A≈UkΣkVkT
其中,
r
a
n
k
(
A
)
=
r
且
0
<
k
<
r
rank(A) = r 且 0 < k < r
rank(A)=r且0<k<r。
这种分解的对角矩阵 Σ r \Sigma_r Σr 的秩比原始矩阵A的秩低。
几何解释
从线性变换的角度解释奇异值分解。设存在这样一个线性变换:
T
:
x
→
A
x
T : x \rightarrow A x
T:x→Ax
x
∈
R
n
,
A
x
∈
R
m
x\in R^n,Ax \in R^m
x∈Rn,Ax∈Rm,
x
,
A
x
x,Ax
x,Ax 分别是各自空间的向量。线性变换可以解释分解为三个简单的变换:
(1)一个坐标系的旋转或反射变换: V T V^\mathrm{T} VT。
(2)一个坐标轴的缩放变换: Σ \Sigma Σ。
(3)另一个坐标系的旋转或反射变换: U U U。
奇异值分解过程: A = U Σ V T A=U\Sigma V^\mathrm T A=UΣVT , U 、 V U、V U、V 是正交矩阵, V V V 可以理解为列向量 v 1 , v 2 … , v n v_1,v_2\ldots,v_n v1,v2…,vn 构成 R n R^n Rn 空间的一组标准正交基。 U U U 可以理解为列向量 u 1 , u 2 … , u n u_1,u_2\ldots,u_n u1,u2…,un 构成 R n R^n Rn 空间的一组标准正交基。 Σ \Sigma Σ 的对角线元素 σ 1 , σ 2 … , σ n \sigma_1,\sigma_2\ldots,\sigma_n σ1,σ2…,σn 是一组非负实数,表示 R n R^n Rn 空间中原始坐标系坐标轴的 σ 1 , σ 2 … , σ n \sigma_1,\sigma_2\ldots,\sigma_n σ1,σ2…,σn 倍的缩放变换。
任意一个向量 x ∈ R n x\in R^n x∈Rn,经过基于 A = U Σ V T A=U\Sigma V^\mathrm T A=UΣVT 的线性变换,等价于上述的三个过程,具体如下图所示:
主要性质
(1)
A
A
T
AA^\mathrm{T}
AAT和
A
T
A
A^\mathrm{T}A
ATA的特征分解存在,且可由矩阵
A
A
A的奇异值分解的矩阵表示;
A
T
A
=
(
U
Σ
V
T
)
T
(
U
Σ
V
T
)
=
V
(
Σ
T
Σ
)
V
T
A
A
T
=
(
U
Σ
V
T
)
(
U
Σ
V
T
)
T
=
U
(
Σ
T
Σ
)
U
T
A^\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
(2)奇异值,左奇异向量,右奇异向量之间的关系
正交矩阵U满足: U − 1 = U T U^{-1}=U^{\mathrm T} U−1=UT
由
A
=
U
Σ
V
T
A = U \Sigma V^{T}
A=UΣVT 易知:
A
V
=
U
Σ
AV = U \Sigma
AV=UΣ
所以有:
A
v
j
=
σ
j
u
j
j
=
1
,
2
,
…
,
n
A v_{j} = \sigma_{j} u_{j} \qquad j = 1,2,\ldots,n
Avj=σjujj=1,2,…,n
得到:
u
j
=
1
σ
j
A
v
j
u_{j} = \frac{1}{\sigma_{j}} A v_{j}
uj=σj1Avj
(3)矩阵
A
A
A的奇异值分解中,奇异值是唯一的,即:
Σ
\Sigma
Σ 唯一,但是矩阵
U
U
U和
V
V
V不是唯一的。
(4) r a n k ( A ) = r a n k ( Σ ) rank(A) = rank(\Sigma) rank(A)=rank(Σ)
计算过程
根据性质(1)
A
T
A
=
(
U
Σ
V
T
)
T
(
U
Σ
V
T
)
=
V
(
Σ
T
Σ
)
V
T
A^\mathrm{T}A = (U\Sigma V^{T})^T(U\Sigma V^{T}) = V(\Sigma^T\Sigma)V^T
ATA=(UΣVT)T(UΣVT)=V(ΣTΣ)VT ,
A
T
A
A^\mathrm{T}A
ATA的特征向量构成正交矩阵
V
V
V 的列;
A
T
A
A^\mathrm{T}A
ATA的特征值
λ
j
\lambda_j
λj 的平方根为奇异值
σ
i
\sigma_i
σi ;即:
σ
j
=
λ
j
j
=
1
,
2
,
…
,
n
\sigma_j = \sqrt{\lambda_j} \qquad j=1,2,\ldots,n
σj=λjj=1,2,…,n
对其由大到小排列组为对角线元素,构成对角矩阵
Σ
\Sigma
Σ 。
具体过程如下:
(1)首先求 A T A A^{\mathrm T} A ATA 的特征值和特征向量
计算对称矩阵 W = A T A W = A^{\mathrm T} A W=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)将特征向量单位化,得到单位特征向量
v
1
,
v
2
,
…
,
v
n
v_1,v_2,\ldots,v_n
v1,v2,…,vn,构成n 阶正交矩阵
V
V
V:
V
=
[
v
1
v
2
…
v
n
]
V = [v_1 \quad v_2 \ldots v_n]
V=[v1v2…vn]
(3)求
m
×
n
m\times n
m×n 对角矩阵
Σ
\Sigma
Σ
计算奇异值: σ i = λ i \sigma_i = \sqrt{\lambda_i} σi=λi
构造
m
×
n
m\times n
m×n 矩形对角矩阵
Σ
\Sigma
Σ ,主对角线元素是奇异值,其余元素是零:
Σ
=
d
i
a
g
(
σ
1
,
σ
2
,
…
,
σ
n
)
\Sigma = diag(\sigma_1,\sigma_2,\ldots,\sigma_n)
Σ=diag(σ1,σ2,…,σn)
(4)求
m
m
m 阶正交矩阵
U
U
U
对
A
A
A的前
r
r
r 个正奇异值,令:
u
j
=
1
σ
j
A
v
j
,
j
=
1
,
2
,
…
r
u_{j} = \frac{1}{\sigma_{j}} A v_{j},\quad j=1,2,\ldots r
uj=σj1Avj,j=1,2,…r
得到:
U
1
=
[
u
1
u
2
…
u
r
]
U_1 = [u_1 \quad u_2 \ldots u_r]
U1=[u1u2…ur]
求
A
T
A^{\mathrm T}
AT 的零空间的一组标准正交基
{
u
r
+
1
u
r
+
2
…
u
m
}
\{u_{r+1} \quad u_{r+2}\quad \ldots u_{m}\}
{ur+1ur+2…um},令:
U
2
=
[
u
r
+
1
u
r
+
2
…
u
m
]
U_2 = [u_{r+1} \quad u_{r+2} \ldots u_m]
U2=[ur+1ur+2…um]
并令:
U
=
[
U
1
U
2
]
U = [U_1 \quad U_2]
U=[U1U2]
(5)得到奇异值分解:
A
=
U
Σ
V
T
A= U \Sigma V^T
A=UΣVT