奇异值分解(SVD)在机器学习、图像压缩中应用很多,使用它能够节省很多存储空间。这里主要从数学原理上阐述SVD的证明。
奇异值分解定义
对任意矩阵
A
∈
R
m
×
n
A \in R^{m\times n}
A∈Rm×n,存在正交矩阵
U
∈
R
m
×
m
,
V
∈
R
n
×
n
U \in R^{m \times m}, V\in R^{n \times n}
U∈Rm×m,V∈Rn×n及除了主对角线上的元素以外全为0的矩阵
Σ
∈
R
m
×
n
\Sigma \in R^{m \times n}
Σ∈Rm×n,使得
A
=
U
Σ
V
T
A = U\Sigma V^{T}
A=UΣVT,其中
Σ
\Sigma
Σ的主对角元上的元素满足
σ
11
≥
σ
22
≥
.
.
.
≥
σ
k
k
,
k
=
m
i
n
(
m
,
n
)
.
\sigma_{11} \ge \sigma_{22} \ge...\ge \sigma_{kk}, k= min(m,n).
σ11≥σ22≥...≥σkk,k=min(m,n).
其中称
σ
i
=
λ
i
,
i
=
1
,
2
,
.
.
.
,
r
\sigma_i = \sqrt{\lambda_i}, i=1,2,...,r
σi=λi,i=1,2,...,r为
A
A
A的奇异值,
r
r
r为
A
A
A的秩且
λ
1
,
λ
2
,
.
.
.
,
λ
r
\lambda_1,\lambda_2,...,\lambda_r
λ1,λ2,...,λr为
A
T
A
A^{T}A
ATA的非零特征值。
数学证明
因为
A
T
A
A^{T}A
ATA为实对称矩阵,所以存在正交矩阵
V
V
V使得
V
T
A
T
A
V
=
d
i
a
g
(
λ
1
,
.
.
.
,
λ
n
)
,
V^{T}A^{T}AV=diag(\lambda_1,...,\lambda_n),
VTATAV=diag(λ1,...,λn),其中
λ
1
,
.
.
.
,
λ
n
\lambda_1,...,\lambda_n
λ1,...,λn为
A
T
A
A^{T}A
ATA的特征值。
因为
A
T
A
v
i
=
λ
i
v
i
,
A^{T}Av_i=\lambda_iv_i,
ATAvi=λivi,
v
i
T
A
T
A
v
i
=
λ
i
v
i
T
v
i
=
λ
i
,
v_i^{T}A^{T}Av_i=\lambda_iv_i^{T}v_i=\lambda_i,
viTATAvi=λiviTvi=λi,所以
λ
i
=
(
A
v
i
)
T
A
v
i
≥
0
\lambda_i=(Av_i)^{T}Av_i\ge0
λi=(Avi)TAvi≥0则不妨设
λ
1
≥
.
.
.
≥
λ
n
≥
0.
\lambda_1\ge...\ge\lambda_n\ge0.
λ1≥...≥λn≥0.
设
V
=
(
v
1
,
.
.
.
,
v
n
)
,
V=(v_1,...,v_n),
V=(v1,...,vn),且
v
i
(
i
=
1
,
.
.
.
,
n
)
v_i(i=1,...,n)
vi(i=1,...,n)为
A
T
A
A^{T}A
ATA的属于
λ
i
\lambda_i
λi的特征向量以及
R
n
R^{n}
Rn的一组标准正交基,设
r
=
r
a
n
k
(
A
)
r=rank(A)
r=rank(A),有
(
A
v
i
,
A
v
j
)
=
v
i
T
A
T
A
v
j
=
v
i
T
λ
j
v
j
=
{
λ
i
≠
0
,
if
i
=
j
0
,
if
i
≠
j
(
i
,
j
=
1
,
.
.
.
,
r
)
(Av_i,Av_j)=v_i^{T}A^{T}Av_j=v_i^{T}\lambda_jv_j=\begin{cases} \lambda_i\neq0, & \text{if $i=j$} \\ 0, & \text{if $i\neq j$ } \end{cases}(i,j=1,...,r)
(Avi,Avj)=viTATAvj=viTλjvj={λi=0,0,if i=jif i=j (i,j=1,...,r)
其中,
λ
i
=
∣
A
v
i
∣
,
(
i
=
1
,
.
.
.
,
r
)
\sqrt{\lambda_i}=|Av_i|,(i=1,...,r)
λi=∣Avi∣,(i=1,...,r),且
A
v
1
,
.
.
.
,
A
v
r
Av_1,...,Av_r
Av1,...,Avr也为正交基,
令
u
i
=
A
v
i
∣
A
v
i
∣
,
i
=
1
,
.
.
.
,
r
u_i=\frac{Av_i}{|Av_i|},i=1,...,r
ui=∣Avi∣Avi,i=1,...,r再将
u
1
,
.
.
.
,
u
r
u_1,...,u_r
u1,...,ur扩充成
R
m
R^{m}
Rm的一组标准正交基
u
1
,
.
.
.
,
u
r
,
.
.
.
,
u
m
.
u_1,...,u_r,...,u_m.
u1,...,ur,...,um.令
U
=
(
u
1
,
.
.
.
,
u
m
)
U=(u_1,...,u_m)
U=(u1,...,um), 有
A
V
=
A
(
v
1
,
.
.
.
,
v
n
)
=
(
A
v
1
,
.
.
.
,
A
v
r
,
0
,
.
.
.
,
0
)
=
(
λ
1
u
1
,
.
.
.
,
λ
r
u
r
,
0
,
.
.
.
,
0
)
=
(
u
1
,
.
.
.
,
u
m
)
d
i
a
g
(
λ
1
,
.
.
.
,
λ
r
,
0
,
.
.
.
,
0
)
AV=A(v_1,...,v_n)=(Av_1,...,Av_r,0,...,0)=(\sqrt{\lambda_1}u_1,...,\sqrt{\lambda_r}u_r,0,...,0)\\=(u_1,...,u_m)diag(\sqrt{\lambda_1},...,\sqrt{\lambda_r},0,...,0)
AV=A(v1,...,vn)=(Av1,...,Avr,0,...,0)=(λ1u1,...,λrur,0,...,0)=(u1,...,um)diag(λ1,...,λr,0,...,0)所以
A
=
U
Σ
V
T
A=U\Sigma V^{T}
A=UΣVT且
λ
1
≥
.
.
.
≥
λ
r
.
\sqrt{\lambda_1}\ge...\ge\sqrt{\lambda_r}.
λ1≥...≥λr.