代数之美奇异值分解(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} ARm×n,存在正交矩阵 U ∈ R m × m U\\in R^{m\\times m} URm×m V ∈ R n × n V\\in R^{n\\times n} VRn×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=1rσ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上的应用

奇异值分解之后如何进行最小二乘解算?

奇异值分解SVD和偏最小二乘奇异值分解PLSSVD

奇异值分解(SVD)和图像压缩

机器学习中的数学-强大的矩阵奇异值分解(SVD)及其应用

[机器学习笔记]奇异值分解SVD简介及其在推荐系统中的简单应用