个人学习笔记(十六)奇异值分解

       奇异值分解(singular value decomposition, SVD)是一种矩阵因子分解方法。任意一个m×nm\times nm×n的矩阵都可以表示为三个矩阵的乘积(因子分解)形式,矩阵的奇异值分解一定存在,但不唯一。奇异值分解可以看作是矩阵数据压缩的一种方法,这种近似是平方损失意义下的最优近似。

一、奇异值分解的定义与性质

       矩阵的奇异值分解是指将一个非零的m×nm\times nm×n实矩阵AAA表示为三个实矩阵乘积形式的运算,即
A=UΣVTA=U\Sigma V^TA=UΣVT       其中UUUmmm阶正交矩阵,VVVnnn阶正交矩阵,Σ\SigmaΣ是由降序排列的非负的对角线元素组成的m×nm\times nm×n对角矩阵。
       根据上述描述,有
UUT=IUU^T=IUUT=IVVT=IVV^T=IVVT=Ip=min⁡(m,n)p=\min(m,n)p=min(m,n)Σ=diag(σ1,σ2,⋯ ,σp)\Sigma=diag(\sigma_1,\sigma_2,\cdots,\sigma_p)Σ=diag(σ1,σ2,,σp)σ1≥σ2≥⋯≥σp≥0\sigma_1\ge\sigma_2\ge\cdots\ge\sigma_p\ge0σ1σ2σp0       σi\sigma_iσi称为矩阵AAA的奇异值(singular value),UUU的列向量称为左奇异向量,VVV的列向量称为右奇异向量。任意给定一个实矩阵,奇异值分解一定存在。
       实际常用的是奇异值分解的紧凑形式和截断形式。
       对于紧奇异值分解,设m×nm\times nm×n实矩阵AAA的秩为rank(A)=rrank(A)=rrank(A)=r,则称
A=UrΣrVrTA=U_r\Sigma_rV_r^TA=UrΣrVrTAAA的紧奇异值分解。其中矩阵UrU_rUr由完全奇异值分解中UUU的前rrr列、矩阵VrV_rVrVVV的前rrr列、矩阵Σr\Sigma_rΣrΣ\SigmaΣ的前rrr个对角线元素得到。
       对于截断奇异值分解,设m×nm\times nm×n实矩阵AAA的秩为rank(A)=rrank(A)=rrank(A)=r0&lt;k&lt;r0&lt;k&lt;r0<k<r,则称
A≈UkΣkVkTA\approx U_k\Sigma_kV_k^TAUkΣkVkTAAA的截断奇异值分解。其中矩阵UkU_kUk由完全奇异值分解中UUU的前kkk列、矩阵VkV_kVkVVV的前kkk列、矩阵Σk\Sigma_kΣkΣ\SigmaΣ的前kkk个对角线元素得到。
       实际上,紧奇异值分解对应着无损压缩,截断奇异值分解对应着有损压缩,它们是在平方损失(弗罗贝尼乌斯范数)意义下对矩阵的最优近似。
       换一个角度去理解奇异值分解,如果将m×nm\times nm×n的矩阵AAA看作从nnn维空间RnR^nRnmmm维空间RmR^mRm的一个线性变换,即
T:x→AxT:x\rightarrow AxT:xAx       那么AAA的奇异值分解可以看作是把这个线性变换分解成:一个坐标系的旋转或反射变换、一个坐标轴的缩放变换、另一个坐标系的旋转或反射变换。奇异值定理保证这种分解一定存在,这就是奇异值分解的几何解释。
       任意一个向量x∈Rnx\in R^nxRn,经过基于A=UΣVTA=U\Sigma V^TA=UΣVT的线性变换,等价于xxx依次经过坐标系的旋转或反射变换VTV^TVT,坐标轴的缩放变换Σ\SigmaΣ,以及坐标系的旋转或反射变换UUU,得到向量Ax∈RmAx\in R^mAxRm
       例如,给定一个2阶矩阵
A=[3121] A=\left[ \begin{matrix} 3 &amp; 1 \\ 2 &amp; 1 \\ \end{matrix} \right] A=[3211]       其奇异值分解为
U=[0.8174−0.57600.57600.8174] U=\left[ \begin{matrix} 0.8174 &amp; -0.5760 \\ 0.5760 &amp; 0.8174 \\ \end{matrix} \right] U=[0.81740.57600.57600.8174]Σ=[3.8643000.2588] \Sigma=\left[ \begin{matrix} 3.8643 &amp; 0 \\ 0 &amp; 0.2588 \\ \end{matrix} \right] Σ=[3.8643000.2588]VT=[0.93270.3606−0.36060.9327] V^T=\left[ \begin{matrix} 0.9327 &amp; 0.3606 \\ -0.3606 &amp; 0.9327 \\ \end{matrix} \right] VT=[0.93270.36060.36060.9327]       观察基于矩阵AAA的奇异值分解将R2R^2R2的标准正交基e1、e2e_1、e_2e1e2进行线性转换的情况。
e1=[10], e2=[01] e_1=\left[ \begin{matrix} 1 \\ 0 \\ \end{matrix} \right],  e_2=\left[ \begin{matrix} 0 \\ 1 \\ \end{matrix} \right] e1=[10], e2=[01]       首先,VTV^TVT表示一个旋转变换,将e1,e2e_1,e_2e1,e2旋转,得到VTe1,VTe2V^Te_1,V^Te_2VTe1,VTe2
VTe1=[0.9327−0.3606], VTe2=[0.36060.9327]V^Te_1=\left[ \begin{matrix} 0.9327 \\ -0.3606 \\ \end{matrix} \right],  V^Te_2=\left[ \begin{matrix} 0.3606 \\ 0.9327 \\ \end{matrix} \right]VTe1=[0.93270.3606], VTe2=[0.36060.9327]       其次,Σ\SigmaΣ表示一个缩放变换,将VTe1,VTe2V^Te_1,V^Te_2VTe1,VTe2缩放,得到ΣVTe1,ΣVTe2\Sigma V^Te_1,\Sigma V^Te_2ΣVTe1,ΣVTe2
ΣVTe1=[3.6042−0.0933], ΣVTe2=[1.39350.2414]\Sigma V^Te_1=\left[ \begin{matrix} 3.6042 \\ -0.0933 \\ \end{matrix} \right],  \Sigma V^Te_2=\left[ \begin{matrix} 1.3935 \\ 0.2414 \\ \end{matrix} \right]ΣVTe1=[3.60420.0933], ΣVTe2=[1.39350.2414]       最后,UUU表示一个旋转变换,将ΣVTe1,ΣVTe2\Sigma V^Te_1,\Sigma V^Te_2ΣVTe1,ΣVTe2旋转,得到Ae1,Ae2Ae_1,Ae_2Ae1,Ae2
Ae1=UΣVTe1=[32]Ae_1=U\Sigma V^Te_1=\left[ \begin{matrix} 3 \\ 2 \\ \end{matrix} \right]Ae1=UΣVTe1=[32]Ae2=UΣVTe2=[11] Ae_2=U\Sigma V^Te_2=\left[ \begin{matrix} 1 \\ 1 \\ \end{matrix} \right]Ae2=UΣVTe2=[11]       下面介绍奇异值分解的主要性质。
       (1)设矩阵AAA的奇异值分解为A=UΣVTA=U\Sigma V^TA=UΣVT,则以下关系成立:
ATA=V(ΣTΣ)VTA^TA=V(\Sigma^T\Sigma)V^TATA=V(ΣTΣ)VTAAT=U(ΣΣT)UTAA^T=U(\Sigma\Sigma^T)U^TAAT=U(ΣΣT)UT       (2)奇异值、左奇异向量和右奇异向量之间存在对应关系:
       由A=UΣVTA=U\Sigma V^TA=UΣVT易知
AV=UΣAV=U\SigmaAV=UΣ       比较等式左右两边的第jjj列,由于Σ\SigmaΣ是对角矩阵,可以得到
Avj=σjuj, j=1,2,⋯&ThinSpace;,nAv_j=\sigma_ju_j, j=1,2,\cdots,nAvj=σjuj, j=1,2,,n       类似的,由
ATU=VΣTA^TU=V\Sigma^TATU=VΣT       可以得到
ATuj=σjvj, j=1,2,⋯&ThinSpace;,nA^Tu_j=\sigma_jv_j, j=1,2,\cdots,nATuj=σjvj, j=1,2,,nATuj=0, j=n+1,n+2,⋯&ThinSpace;,mA^Tu_j=0, j=n+1,n+2,\cdots,mATuj=0, j=n+1,n+2,,m       (3)在奇异值分解中,奇异值σ1,σ2,⋯&ThinSpace;,σn\sigma_1,\sigma_2,\cdots,\sigma_nσ1,σ2,,σn是唯一的,而矩阵UUUVVV不是唯一的
       (4)矩阵AAAΣ\SigmaΣ的秩相等,等于正奇异值的个数
       (5)设矩阵AAA的秩为rrr,则有:
       矩阵AAArrr个右奇异向量v1,v2,⋯&ThinSpace;,vrv_1,v_2,\cdots,v_rv1,v2,,vr构成值域R(AT)R(A^T)R(AT)的一组标准正交基;
       矩阵AAAn−rn-rnr个右奇异向量vr+1,⋯&ThinSpace;,vnv_{r+1},\cdots,v_nvr+1,,vn构成零空间N(A)N(A)N(A)的一组标准正交基;
       矩阵AAArrr个左奇异向量u1,u2,⋯&ThinSpace;,uru_1,u_2,\cdots,u_ru1,u2,,ur构成值域R(A)R(A)R(A)的一组标准正交基;
       矩阵AAAm−rm-rmr个左奇异向量ur+1,⋯&ThinSpace;,umu_{r+1},\cdots,u_mur+1,,um构成零空间N(AT)N(A^T)N(AT)的一组标准正交基。

二、奇异值分解的计算

       给定m×nm\times nm×n的矩阵AAA,奇异值分解的计算过程如下。
       (1)求ATAA^TAATA的特征值和特征向量,即求解
(ATA−λI)x=0(A^TA-\lambda I)x=0(ATAλI)x=0       将特征值与特征向量按特征值由大到小排列
λ1≥λ2≥⋯≥λn≥0\lambda_1\ge\lambda_2\ge\cdots\ge\lambda_n\ge0λ1λ2λn0       (2)求nnn阶正交矩阵VVV,将特征向量单位化后,构成nnn阶正交矩阵VVV
V=[v1 v2 ⋯ vn]V=[v_1 v_2 \cdots v_n]V=[v1 v2  vn]       (3)求m×nm\times nm×n对角矩阵Σ\SigmaΣ,先计算AAA的奇异值
σi=λi, i=1,2,⋯&ThinSpace;,n\sigma_i=\sqrt{\lambda_i}, i=1,2,\cdots,nσi=λi, i=1,2,,n       再构造对角矩阵Σ\SigmaΣ
Σ=diag(σ1,σ2,⋯&ThinSpace;,σn)\Sigma=diag(\sigma_1,\sigma_2,\cdots,\sigma_n)Σ=diag(σ1,σ2,,σn)       (4)求mmm阶正交矩阵UUU,对AAA的前rrr个正奇异值,令
uj=1σjAvj, j=1,2,⋯&ThinSpace;,ru_j=\frac{1}{\sigma_j}Av_j, j=1,2,\cdots,ruj=σj1Avj, j=1,2,,r       得到
U1=[u1 u2 ⋯ ur]U_1=[u_1 u_2 \cdots u_r]U1=[u1 u2  ur]       再求零空间N(AT)N(A^T)N(AT)的一组标准正交基,得到
U2=[ur+1 ur+2 ⋯ um]U_2=[u_{r+1} u_{r+2} \cdots u_m]U2=[ur+1 ur+2  um]       令
U=[U1 U2]U=[U_1 U_2]U=[U1 U2]       得到奇异值分解A=UΣVTA=U\Sigma V^TA=UΣVT

三、奇异值分解与矩阵近似

       奇异值分解是一种矩阵近似的方法,这个近似是在弗罗贝尼乌斯范数(Frobenius norm)意义下的近似。设矩阵A∈Rm×nA\in R^{m\times n}ARm×n,定义矩阵AAAFFF-范数为
∣∣A∣∣F=(∑i=1m∑j=1naij2)12||A||_F=(\sum_{i=1}^m\sum_{j=1}^na_{ij}^2)^\frac{1}{2}AF=(i=1mj=1naij2)21       则有如下引理:设AAA的奇异值分解为UΣVTU\Sigma V^TUΣVT,其中Σ=diag(σ1,σ2,⋯&ThinSpace;,σn)\Sigma=diag(\sigma_1,\sigma_2,\cdots,\sigma_n)Σ=diag(σ1,σ2,,σn),则
∣∣A∣∣F=(σ12+σ22+⋯+σn2)12||A||_F=(\sigma_1^2+\sigma_2^2+\cdots+\sigma_n^2)^\frac{1}{2}AF=(σ12+σ22++σn2)21       因此,考虑一个秩为kkk的矩阵X∈Rm×nX\in R^{m\times n}XRm×n,使得
min⁡∣∣A−X∣∣F\min||A-X||_FminAXF       矩阵XXX为矩阵AAA在弗罗贝尼乌斯范数意义下的最优近似,这个矩阵XXX便是Ak=UkΣkVkTA_k=U_k\Sigma_kV_k^TAk=UkΣkVkT。因此,截断奇异值分解是在弗罗贝尼乌斯范数意义下的有损压缩。
       此外,矩阵AAA的奇异值分解UΣVTU\Sigma V^TUΣVT也可以由外积形式表示。将UΣU\SigmaUΣ按列向量分块,将VTV^TVT按行向量分块,即得
UΣ=[σ1u1 σ2u2 ⋯ σnun]U\Sigma=[\sigma_1u_1 \sigma_2u_2 \cdots \sigma_nu_n]UΣ=[σ1u1 σ2u2  σnun]VT=[v1Tv2T⋮vnT] V^T=\left[ \begin{matrix} v_1^T \\ v_2^T \\ \vdots \\ v_n^T \\ \end{matrix} \right]VT=v1Tv2TvnT       则
A=σ1u1v1T+σ2u2v2T+⋯+σnunvnTA=\sigma_1u_1v_1^T+\sigma_2u_2v_2^T+\cdots+\sigma_nu_nv_n^TA=σ1u1v1T+σ2u2v2T++σnunvnT       上式被称为矩阵AAA的外积展开式,其中ukvkTu_kv_k^TukvkTm×nm\times nm×n矩阵。
       若矩阵AAA的秩为nnn,设矩阵
An−1=σ1u1v1T+σ2u2v2T+⋯+σn−1un−1vn−1TA_{n-1}=\sigma_1u_1v_1^T+\sigma_2u_2v_2^T+\cdots+\sigma_{n-1}u_{n-1}v_{n-1}^TAn1=σ1u1v1T+σ2u2v2T++σn1un1vn1T       则An−1A_{n-1}An1得秩为n−1n-1n1,并且An−1A_{n-1}An1是秩为n−1n-1n1矩阵在弗罗贝尼乌斯范数意义下AAA的最优近似矩阵。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值