奇异值分解(SVD)详解

奇异值分解的主要思想

奇异值(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σp0p=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 AUkΣkVkT
其中, r a n k ( A ) = r 且 0 < k < r rank(A) = r 且 0 < k < r rank(A)=r0<k<r

这种分解的对角矩阵 Σ r \Sigma_r Σr 的秩比原始矩阵A的秩低。

几何解释

从线性变换的角度解释奇异值分解。设存在这样一个线性变换:
T : x → A x T : x \rightarrow A x T:xAx
x ∈ R n , A x ∈ R m x\in R^n,Ax \in R^m xRn,AxRm 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 UV 是正交矩阵, 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 xRn,经过基于 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} U1=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=λj j=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λn0
求特征值 λ 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=[v1v2vn]
(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=[u1u2ur]
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+2um},令:
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+2um]
并令:
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

  • 1
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值