代数之美奇异值分解(SVD)及其在线性最小二乘解Ax=b上的应用
Posted Ethan Li 李迎松
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了代数之美奇异值分解(SVD)及其在线性最小二乘解Ax=b上的应用相关的知识,希望对你有一定的参考价值。
奇异值分解(Singular Value Decomposition,SVD) 是线性代数中重要的矩阵分解,是特征分解在任意矩阵上的推广,在立体视觉、三维重建领域应用非常广泛。由于可以用于求解线性方程的最小二乘解,所以在求解本质矩阵、单应性矩阵、点云刚性变换矩阵时,都能用到SVD。本篇即给大家简单介绍下奇异值分解,并通过公式推导来说明其在线性最小二乘解
A
x
=
b
Ax=b
Ax=b上的应用。
奇异值分解(SVD Decomposition)定义
对于任意矩阵
A
∈
R
m
×
n
A\\in R^{m\\times n}
A∈Rm×n,存在正交矩阵
U
∈
R
m
×
m
U\\in R^{m\\times m}
U∈Rm×m,
V
∈
R
n
×
n
V\\in R^{n\\times n}
V∈Rn×n,以及对角矩阵
Σ
∈
R
m
×
n
\\Sigma \\in R^{m\\times n}
Σ∈Rm×n:
其中,对角线元素满足:
σ
1
≥
⋯
≥
σ
r
≥
σ
r
+
1
=
⋯
=
σ
min
(
m
,
n
)
=
0
\\sigma_1\\geq\\cdots\\geq\\sigma_r\\geq\\sigma_{r+1}=\\cdots=\\sigma_{\\min(m,n)}=0
σ1≥⋯≥σr≥σr+1=⋯=σmin(m,n)=0
使得,
A
=
U
Σ
V
T
A=U\\Sigma V^T
A=UΣVT。
此分解叫做矩阵 A A A的奇异值分解(Singular Value Decomposition),是一个非常重要的矩阵分解,对角矩阵 Σ \\Sigma Σ的对角线元素 σ i \\sigma_i σi叫做矩阵 A A A的奇异值。矩阵 U U U的列向量成为左奇异向量,矩阵 V V V的列向量成为右奇异向量。
使用正交矩阵
V
V
V,可得到以下公式:
A
V
=
U
Σ
AV=U\\Sigma
AV=UΣ
这可解释为,存在一组特殊的正交向量集(例如 V V V的列向量集),通过矩阵 A A A映射到另一组正交向量集(例如 U U U的列向量集)。
SVD的一些特性
给定矩阵
A
A
A的一组SVD分解
A
=
U
Σ
V
T
A=U\\Sigma V^T
A=UΣVT
其中, σ 1 ≥ ⋯ ≥ σ r ≥ σ r + 1 = ⋯ = σ min ( m , n ) = 0 \\sigma_1\\geq\\cdots\\geq\\sigma_r\\geq\\sigma_{r+1}=\\cdots=\\sigma_{\\min(m,n)}=0 σ1≥⋯≥σr≥σr+1=⋯=σmin(m,n)=0
存在以下推论( R ( A ) R(A) R(A)和 N ( A ) N(A) N(A)分别为矩阵 A A A的值域空间和零空间):
- r a n k ( A ) = r rank(A)=r rank(A)=r
- R ( A ) = R ( [ u 1 , . . . u r ] ) R(A)=R([u_1,...u_r]) R(A)=R([u1,...ur])
- N ( A ) = R ( [ u r + 1 , . . . , u n ] ) N(A)=R([u_{r+1},...,u_n]) N(A)=R([ur+1,...,un])
- R ( A T ) = R ( [ v 1 , . . . v r ] ) R(A^T)=R([v_1,...v_r]) R(AT)=R([v1,...vr])
- N ( A T ) = R ( [ v r + 1 , . . . , v m ] ) N(A^T)=R([v_{r+1},...,v_m]) N(AT)=R([vr+1,...,vm])
如果我们引入
U
r
=
[
u
1
,
.
.
.
,
u
r
]
,
Σ
=
d
i
a
g
(
σ
1
,
.
.
.
,
σ
r
)
,
V
r
=
[
v
1
,
.
.
.
,
v
r
]
U_r=[u_1,...,u_r],\\Sigma=diag(\\sigma_1,...,\\sigma_r),V_r=[v_1,...,v_r]
Ur=[u1,...,ur],Σ=diag(σ1,...,σr),Vr=[v1,...,vr]
则有
A
=
U
r
Σ
r
V
r
T
=
∑
i
=
1
r
σ
i
u
i
v
i
T
A=U_r\\Sigma_rV_r^T=\\sum_{i=1}^r\\sigma_iu_iv_i^T
A=UrΣrVrT=i=1∑rσiuiviT
这称为矩阵
A
A
A的二进制分解(dyadic decomposition),即将秩为
r
r
r的矩阵
A
A
A分解为
r
r
r个秩为1的矩阵之和。
同时,可以得到
A
T
A
=
V
Σ
T
Σ
V
T
a
n
d
A
A
T
=
U
Σ
Σ
T
U
T
A^TA=V\\Sigma^T\\Sigma V^T and AA^T=U\\Sigma\\Sigma^TU^T
ATA=VΣTΣV代数之美奇异值分解(SVD)及其在线性最小二乘解Ax=b上的应用