奇异值分解
Singular Value Decomposition
A
=
U
Σ
V
T
A = U\Sigma V^T
A=UΣVT
奇异值分解可以看作是矩阵数据压缩的一种方法,这种近似是在平方损失下的最优近似。紧奇异值分解对应着无损压缩,截断奇异值分解对应着有损压缩。
奇异值分解的定义与性质
A
=
U
Σ
V
T
A = U\Sigma V^T
A=UΣVT
U是m阶正交矩阵,V是n阶正交矩阵,$$是由降序排列的非负的对角线元素构成的m * n 矩形对角矩阵,满足:
U U T = I UU^T = I UUT=I
V V T = I VV^T = I VVT=I
Σ = d i a g ( σ 1 , σ 2 , . . . , σ p ) \Sigma = diag(\sigma_1,\sigma_2,...,\sigma_p) Σ=diag(σ1,σ2,...,σp)
σ 1 > σ 2 > . . . > σ p \sigma_1> \sigma_2> ... > \sigma_p σ1>σ2>...>σp
p = m i n p = min p=min
σ i \sigma_i σi称为矩阵A的奇异值,U的列向量称之为左奇异向量,V的列向量称之为右奇异向量。
紧奇异值分解与截断奇异值分解
A = U Σ V T A = U\Sigma V^T A=UΣVT是矩阵的完全奇异值分解,实际上常用的是奇异值分解的紧凑形式和截断形式。紧奇异值分解是与原始矩阵等秩的奇异值分解,截断奇异值分解是比原始矩阵低秩的奇异值分解。
几何解释
A
=
U
Σ
V
T
A = U\Sigma V^T
A=UΣVT
V
,
(
v
1
,
v
2
,
.
.
.
,
v
n
)
∈
R
n
V~,~(v_1,v_2,...,v_n)\in R^n
V , (v1,v2,...,vn)∈Rn
U
,
(
u
1
,
u
2
,
.
.
.
,
u
m
)
∈
R
m
U~,~(u_1,u_2,...,u_m)\in R^m
U , (u1,u2,...,um)∈Rm
Σ
,
(
σ
1
,
σ
2
,
.
.
.
,
σ
n
)
∈
R
n
\Sigma~,~(\sigma_1,\sigma_2,...,\sigma_n)\in R^n
Σ , (σ1,σ2,...,σn)∈Rn
T
:
x
−
>
A
x
,
x
∈
R
n
,
A
x
∈
R
m
T~:~x->Ax~,~x\in R^n~,~Ax\in R^m
T : x−>Ax , x∈Rn , Ax∈Rm
旋转变换,放缩变换,旋转变换。
表示m * n 矩阵A从n维空间到m空间的一个线形转换
奇异值分解的计算
要讲述SVD,首先来看一下EVD,也就是特征值分解
EVD
A是一个m * m的实对称矩阵(即
A
=
A
T
A = A^T
A=AT),那么他可以被分解为如下的形式
公式一:
A
=
Q
∑
Q
T
=
Q
[
λ
1
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
λ
2
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
λ
n
]
Q
T
A = Q \sum Q^T = Q \begin{bmatrix} \lambda_1 & ... &... &... &... \\ ... & \lambda_2 &... &... &...\\ ... & ... &... &... &... \\ ... & ... &... &... &\lambda_n \end{bmatrix} Q^T
A=Q∑QT=Q⎣⎢⎢⎡λ1............λ2.......................................λn⎦⎥⎥⎤QT
其中,Q为正交矩阵,即
Q
Q
T
=
I
QQ^T = I
QQT=I,
∑
\sum
∑为对角矩阵.
λ
i
\lambda_i
λi称之为特征值,Q里面的向量
Q
i
Q_i
Qi称之为特征向量。
SVD
对于一般矩阵而言,我们也想要这样的分解,可以么?答案是肯定的,这时候就需要我们下面所说的SVD分解
这里,A是一个m * n矩阵,我们将它分解为下面的形式:
A
=
U
∑
V
T
A = U\sum V^T
A=U∑VT
其中,U和V为单位正交阵(
U
U
T
=
I
UU^T = I
UUT=I,
V
V
T
=
I
VV^T = I
VVT=I),则,U称之为左奇异矩阵,V称之为右奇异矩阵。
∑
\sum
∑仅在主对角线上有值,我们称它为奇异值。且
U
∈
m
∗
m
,
∑
∈
m
∗
n
,
V
∈
n
∗
n
U \in m * m , \sum \in m * n , V \in n * n
U∈m∗m,∑∈m∗n,V∈n∗n,一般情况下,
∑
\sum
∑有如下形式
∑
=
[
σ
1
0
0
0
0
0
σ
2
0
0
0
0
0
.
.
.
0
0
0
0
0
0
0
]
\sum = \begin{bmatrix} \sigma_1 & 0 &0 &0 &0 \\ 0 & \sigma_2 &0 &0 &0\\ 0 & 0 &... &0 &0 \\ 0 & 0 &0 &0 &0 \end{bmatrix}
∑=⎣⎢⎢⎡σ10000σ20000...000000000⎦⎥⎥⎤
SVD求解
因为直接求U和V不方便,看如下推导过程
公式二:
A
A
T
=
U
∑
V
T
V
∑
T
U
T
=
U
∑
∑
T
U
T
AA^T = U\sum V^TV{\sum}^T U^T = U\sum {\sum}^TU^T
AAT=U∑VTV∑TUT=U∑∑TUT
公式三:
A
T
A
=
V
∑
T
U
T
U
∑
V
T
=
V
∑
T
∑
V
T
A^TA = V{\sum}^T U^TU\sum V^T = V{\sum}^T \sum V^T
ATA=V∑TUTU∑VT=V∑T∑VT
需要指出的是这里的
∑
∑
T
\sum {\sum}^T
∑∑T和
∑
T
∑
{\sum}^T \sum
∑T∑是不一样的,因为他们的维数不同,但是,他们在主对角线上的奇异值是相等的。
可以看出,公式2和公式3与公式1很相似,将
A
A
T
AA^T
AAT与
A
T
A
A^TA
ATA利用公式1求出U和V,然后对
∑
∑
T
\sum {\sum}^T
∑∑T和
∑
T
∑
{\sum}^T \sum
∑T∑开方,就可以得到所有的奇异值。
奇异值分解与矩阵近似
弗罗贝尼乌斯范数
∣ ∣ A ∣ ∣ F = ( ∑ i = 1 m ∑ j = 1 n ( a i j ) 2 ) 1 / 2 ||A|| _ F = (\sum_{i=1}^m\sum_{j=1}^n(a_{ij})^2)^{1/2} ∣∣A∣∣F=(i=1∑mj=1∑n(aij)2)1/2
矩阵的最优近似
∣
∣
A
−
X
∣
∣
F
=
min
S
∈
M
∣
∣
A
−
S
∣
∣
F
||A-X||_ F = \min_{S\in\mathcal{M}||A-S||_ F}
∣∣A−X∣∣F=S∈M∣∣A−S∣∣Fmin
称矩阵X为矩阵在弗罗贝尼乌斯范数下的最优近似
矩阵的外积展开形式
U
Σ
=
[
σ
1
u
1
σ
2
u
2
.
.
.
σ
n
v
n
]
U\Sigma = [\sigma_1u_1~\sigma_2u_2~...~\sigma_nv_n]
UΣ=[σ1u1 σ2u2 ... σnvn]
V
T
=
[
v
1
T
.
.
.
v
n
T
]
T
V^T = [v_1^T~...~v_n^T]^T
VT=[v1T ... vnT]T
A
=
σ
1
u
1
v
1
T
+
.
.
.
+
σ
n
v
n
v
n
T
A = \sigma_1u_1v_1^T+...+\sigma_nv_nv_n^T
A=σ1u1v1T+...+σnvnvnT