奇异值分解的主要思想

奇异值(singular value decomposition, SVD)是一种矩阵因子分解方法。

其主要思想是:任意一个m×nm\times n 矩阵都可以表示为三个矩阵的乘积(因子分解)形式,即:
A=UΣVT A=U\Sigma V^\mathrm T
其中 UUmm 阶正交矩阵,VVnn 阶正交矩阵, Σ\Sigma 是由降序排序的非负的对角线元素组成的m×nm\times n 矩形对角矩阵。且满足:
UUT=IVVT=IΣ=diag(σ1,σ2,,σp)σ1σ2σp0p=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)
σi\sigma_i 称为矩阵A的奇异值,U的列向量称为左奇异向量,V的列向量称为右奇异向量。

奇异值分解形式

奇异值分解A=UΣVTA=U\Sigma V^\mathrm T 又称矩阵的完全奇异值分解。实际常用的是奇异值分解的紧凑形式和截断形式。紧凑形式分解是与原始矩阵等秩的奇异值分解,截断奇异值分解是比原始矩阵低秩的奇异值分解。

(1)紧奇异值分解

紧奇异值分解:
A=UrΣrVrT A=U_r\Sigma_r V_r^\mathrm T

其中,r=rank(A)r=rank(A )

这种分解的对角矩阵Σr\Sigma_r 的秩和原始矩阵A的秩相等。

(2)截断奇异值分解
AUkΣkVkT A\approx U_k\Sigma_k V_k^\mathrm T
其中,rank(A)=r0<k<rrank(A) = r 且 0 < k < r

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

几何解释

从线性变换的角度解释奇异值分解。设存在这样一个线性变换:
T:xAx T : x \rightarrow A x
xRn,AxRmx\in R^n,Ax \in R^mx,Axx,Ax 分别是各自空间的向量。线性变换可以解释分解为三个简单的变换:

(1)一个坐标系的旋转或反射变换:VTV^\mathrm{T}

(2)一个坐标轴的缩放变换:Σ\Sigma

(3)另一个坐标系的旋转或反射变换:UU

奇异值分解过程:A=UΣVTA=U\Sigma V^\mathrm TUVU、V 是正交矩阵,VV 可以理解为列向量v1,v2,vnv_1,v_2\ldots,v_n 构成RnR^n 空间的一组标准正交基。 UU 可以理解为列向量u1,u2,unu_1,u_2\ldots,u_n 构成RnR^n 空间的一组标准正交基。 Σ\Sigma 的对角线元素σ1,σ2,σn\sigma_1,\sigma_2\ldots,\sigma_n 是一组非负实数,表示 RnR^n 空间中原始坐标系坐标轴的σ1,σ2,σn\sigma_1,\sigma_2\ldots,\sigma_n 倍的缩放变换。

任意一个向量xRnx\in R^n,经过基于A=UΣVTA=U\Sigma V^\mathrm T 的线性变换,等价于上述的三个过程,具体如下图所示:

奇异值分解(SVD)详解

主要性质

(1)AATAA^\mathrm{T}ATAA^\mathrm{T}A的特征分解存在,且可由矩阵AA的奇异值分解的矩阵表示;
ATA=(UΣVT)T(UΣVT)=V(ΣTΣ)VTAAT=(UΣVT)(UΣVT)T=U(ΣTΣ)UT 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
(2)奇异值,左奇异向量,右奇异向量之间的关系

正交矩阵U满足:U1=UTU^{-1}=U^{\mathrm T}

A=UΣVTA = U \Sigma V^{T} 易知:
AV=UΣ AV = U \Sigma
所以有:
Avj=σjujj=1,2,,n A v_{j} = \sigma_{j} u_{j} \qquad j = 1,2,\ldots,n
得到:
uj=1σjAvj u_{j} = \frac{1}{\sigma_{j}} A v_{j}
(3)矩阵AA的奇异值分解中,奇异值是唯一的,即:Σ\Sigma 唯一,但是矩阵UUVV不是唯一的。

(4)rank(A)=rank(Σ)rank(A) = rank(\Sigma)

计算过程

根据性质(1)ATA=(UΣVT)T(UΣVT)=V(ΣTΣ)VTA^\mathrm{T}A = (U\Sigma V^{T})^T(U\Sigma V^{T}) = V(\Sigma^T\Sigma)V^TATAA^\mathrm{T}A的特征向量构成正交矩阵VV 的列;ATAA^\mathrm{T}A的特征值λj\lambda_j 的平方根为奇异值σi\sigma_i ;即:
σj=λjj=1,2,,n \sigma_j = \sqrt{\lambda_j} \qquad j=1,2,\ldots,n
对其由大到小排列组为对角线元素,构成对角矩阵Σ\Sigma

具体过程如下:

(1)首先求ATAA^{\mathrm T} A 的特征值和特征向量

计算对称矩阵W=ATAW = A^{\mathrm T} A

求解特征方程:
(WλI)x=0 (W-\lambda I)x = 0
特征值λi\lambda_i 从大到小排序:
λ1λ2λn0 \lambda_1 \geq \lambda_2 \geq \ldots\geq \lambda_n \geq 0
求特征值λi\lambda_i 对应的特征向量。

(2)将特征向量单位化,得到单位特征向量v1,v2,,vnv_1,v_2,\ldots,v_n,构成n 阶正交矩阵VV
V=[v1v2vn] V = [v_1 \quad v_2 \ldots v_n]
(3)求m×nm\times n 对角矩阵Σ\Sigma

计算奇异值:σi=λi\sigma_i = \sqrt{\lambda_i}

构造m×nm\times n 矩形对角矩阵Σ\Sigma ,主对角线元素是奇异值,其余元素是零:
Σ=diag(σ1,σ2,,σn) \Sigma = diag(\sigma_1,\sigma_2,\ldots,\sigma_n)
(4)求mm 阶正交矩阵UU

AA的前rr 个正奇异值,令:
uj=1σjAvj,j=1,2,r u_{j} = \frac{1}{\sigma_{j}} A v_{j},\quad j=1,2,\ldots r
得到:
U1=[u1u2ur] U_1 = [u_1 \quad u_2 \ldots u_r]
ATA^{\mathrm T} 的零空间的一组标准正交基{ur+1ur+2um}\{u_{r+1} \quad u_{r+2}\quad \ldots u_{m}\},令:
U2=[ur+1ur+2um] U_2 = [u_{r+1} \quad u_{r+2} \ldots u_m]
并令:
U=[U1U2] U = [U_1 \quad U_2]
(5)得到奇异值分解:
A=UΣVT A= U \Sigma V^T

相关文章:

  • 2021-09-29
  • 2021-09-04
  • 2021-05-05
猜你喜欢
  • 2021-09-19
  • 2021-06-27
  • 2021-05-14
  • 2021-06-12
  • 2021-10-15
  • 2021-06-21
相关资源
相似解决方案