全面理解奇异值分解

本篇笔记主要参考《统计学习方法》

奇异值分解的定义与性质

定义与定理

奇异值分解又叫做SVD,是一种矩阵因子分解方法,是统计学习中的重要工具。

任意一个m x n矩阵,都可以表示为三个矩阵的乘积形式,分别是m阶标准正交矩阵、由降序排列的非负对角线元素组成的m x n矩形对角矩阵n阶标准正交矩阵,这就称为该矩阵的奇异值分解

奇异值分解可以看作矩阵数据压缩的一种方法,即用因子分解的方式近似地表示原始矩阵,这种近似是在平方损失意义下的最优近似。

统计学习方法中对奇异值分解定义如下
在这里插入图片描述
其中
U U T = I V V T = I Σ = diag ⁡ ( σ 1 , σ 2 , ⋯   , σ p ) σ 1 ⩾ σ 2 ⩾ ⋯ ⩾ σ p ⩾ 0 p = min ⁡ ( m , n ) (1.0) \begin{array}{l} U U^{\mathrm{T}}=I \\ V V^{\mathrm{T}}=I \\ \Sigma=\operatorname{diag}\left(\sigma_{1}, \sigma_{2}, \cdots, \sigma_{p}\right) \\ \sigma_{1} \geqslant \sigma_{2} \geqslant \cdots \geqslant \sigma_{p} \geqslant 0 \\ p=\min (m, n) \tag{1.0} \end{array} UUT=IVVT=IΣ=diag(σ1,σ2,,σp)σ1σ2σp0p=min(m,n)(1.0)
其实个人认为书本里面的用语可能不够严谨,U和V在上面条件的定义下应该是标准正交矩阵。上式中的 σ \sigma σ就是奇异值,U的列向量称为左奇异向量,V的列向量称为右奇异向量。

事实上矩阵的奇异值分解可以看作是方阵对角化的推广。还值得一提的是实对称阵一定可以对角化。为什么值得一提?因为这个结论是另一个结论的证明基础:任意m x n的实矩阵都存在满足公式(1.0)要求的奇异值分解。这就是奇异值分解基本定理,表述如下:
在这里插入图片描述
下面是定理的证明,该证明过程也是奇异值计算的过程。


奇异值分解基本定理证明

先考虑A’A。首先因为A’A是实对称阵,所以必然存在一个n阶正交矩阵V能实现A’A的对角化(相似变换)。同时因为是A’A,所以其有特征值都大于0的性质(这个性质简单想想就容易得出,A’A相当于计算模,行列式大于0,所以所有特征值肯定也都大于0)。令x是A’A的特征向量,对应特征值为 λ \lambda λ,证明如下
∥ A x ∥ 2 = x T A T A x = λ x T x = λ ∥ x ∥ 2 \|A x\|^{2}=x^{\mathrm{T}} A^{\mathrm{T}} A x=\lambda x^{\mathrm{T}} x=\lambda\|x\|^{2} Ax2=xTATAx=λxTx=λx2
于是
λ = ∥ A x ∥ 2 ∥ x ∥ 2 ⩾ 0 \lambda=\frac{\|A x\|^{2}}{\|x\|^{2}} \geqslant 0 λ=x2Ax20
假设调整一下正交矩阵让所有特征值形成降序排列
λ 1 ⩾ λ 2 ⩾ ⋯ ⩾ λ n ⩾ 0 \lambda_{1} \geqslant \lambda_{2} \geqslant \cdots \geqslant \lambda_{n} \geqslant 0 λ1λ2λn0
那么特征值的平方根就是矩阵A的奇异值
σ j = λ j , j = 1 , 2 , ⋯   , n \sigma_{j}=\sqrt{\lambda_{j}}, \quad j=1,2, \cdots, n σj=λj ,j=1,2,,n
因为A的秩是r,所以A’A的秩也是r,这里可参照Ax=o中x的空间的维度与A’Ax=o的x空间的维度一致,由维数定理可知秩也一致。所以非0特征值个数与0特征值个数都可以确定了:
λ 1 ⩾ λ 2 ⩾ ⋯ ⩾ λ r > 0 , λ r + 1 = λ r + 2 = ⋯ = λ n = 0 \lambda_{1} \geqslant \lambda_{2} \geqslant \cdots \geqslant \lambda_{r}>0, \quad \lambda_{r+1}=\lambda_{r+2}=\cdots=\lambda_{n}=0 λ1λ2λr>0,λr+1=λr+2==λn=0
对应地,奇异值也一样
σ 1 ⩾ σ 2 ⩾ ⋯ ⩾ σ r > 0 , σ r + 1 = σ r + 2 = ⋯ = σ n = 0 \sigma_{1} \geqslant \sigma_{2} \geqslant \cdots \geqslant \sigma_{r}>0, \quad \sigma_{r+1}=\sigma_{r+2}=\cdots=\sigma_{n}=0 σ1σ2σr>0,σr+1=σr+2==σn=0
这时候根据奇异值是否为0,来对矩阵V进行分块操作,令
V 1 = [ ν 1 ν 2 ⋯ ν r ] , V 2 = [ ν r + 1 ν r + 2 ⋯ ν n ] V_{1}=\left[\begin{array}{llll} \nu_{1} & \nu_{2} & \cdots & \nu_{r} \end{array}\right], \quad V_{2}=\left[\begin{array}{llll} \nu_{r+1} & \nu_{r+2} & \cdots & \nu_{n} \end{array}\right] V1=[ν1ν2νr],V2=[νr+1νr+2νn]
这样0特征值对应的列向量成一块,非零特征值对应的列向量也成一块。就构成了n阶正交矩阵V。标准化一下可得标准正交阵V。缩放特征向量其对应的特征值是不变的,所以缩小模长倍也OK。
这时候看中间的对角阵,先定义r阶对角阵为
Σ 1 = [ σ 1 σ 2 ⋱ σ r ] \Sigma_{1}=\left[\begin{array}{cccc} \sigma_{1} & & & \\ & \sigma_{2} & & \\ & & \ddots & \\ & & & \sigma_{r} \end{array}\right] Σ1=σ1σ2σr
于是m x n矩形对角矩阵可表示为
Σ = [ Σ 1 0 0 0 ] \Sigma=\left[\begin{array}{cc} \Sigma_{1} & 0 \\ 0 & 0 \end{array}\right] Σ=[Σ1000]
这是V和对角阵都确定,先不急着确定U,继续看看V,由于其列向量构成A’A的特征向量,所以
A T A v j = 0 , j = r + 1 , ⋯   , n A^{\mathrm{T}} A v_{j}=0, \quad j=r+1, \cdots, n ATAvj=0,j=r+1,,n
这里发现 V 2 V_2 V2的列向量构成了A’A的零空间,也就是核,所以 V 2 V_2 V2的列向量也构成A的零空间的一组标准正交基,于是可得
A V 2 = 0 A V_{2}=0 AV2=0
根据分块矩阵和正交阵的性质,有
I = V V T = V 1 V 1 T + V 2 V 2 T A = A I = A V 1 V 1 T + A V 2 V 2 T = A V 1 V 1 T \begin{array}{c} I=V V^{\mathrm{T}}=V_{1} V_{1}^{\mathrm{T}}+V_{2} V_{2}^{\mathrm{T}} \\ A=A I=A V_{1} V_{1}^{\mathrm{T}}+A V_{2} V_{2}^{\mathrm{T}}=A V_{1} V_{1}^{\mathrm{T}} \end{array} I=VVT=V1V1T+V2V2TA=AI=AV1V1T+AV2V2T=AV1V1T
完毕,接下来确定U

u j = 1 σ j A v j , j = 1 , 2 , ⋯   , r U 1 = [ u 1 u 2 ⋯ u r ] \begin{array}{c} u_{j}=\frac{1}{\sigma_{j}} A v_{j}, \quad j=1,2, \cdots, r \\ U_{1}=\left[\begin{array}{llll} u_{1} & u_{2} & \cdots & u_{r} \end{array}\right] \end{array} uj=σj1Avj,j=1,2,,rU1=[u1u2ur]
这时候可知这r个u一定是线性无关的了,
A V 1 = U 1 Σ 1 A V_{1}=U_{1} \Sigma_{1} AV1=U1Σ1
U1的列向量构成一组标准正交基,因为
u i T u j = ( 1 σ i v i T A T ) ( 1 σ j A v j ) = 1 σ i σ j v i T ( A T A v j ) = σ j σ i v i T v j = δ i j , i = 1 , 2 , ⋯   , r ; j = 1 , 2 , ⋯   , r \begin{aligned} u_{i}^{\mathrm{T}} u_{j} &=\left(\frac{1}{\sigma_{i}} v_{i}^{\mathrm{T}} A^{\mathrm{T}}\right)\left(\frac{1}{\sigma_{j}} A v_{j}\right) \\ &=\frac{1}{\sigma_{i} \sigma_{j}} v_{i}^{\mathrm{T}}\left(A^{\mathrm{T}} A v_{j}\right) \\ &=\frac{\sigma_{j}}{\sigma_{i}} v_{i}^{\mathrm{T}} v_{j} \\ &=\delta_{i j}, \quad i=1,2, \cdots, r ; \quad j=1,2, \cdots, r \end{aligned} uiTuj=(σi1viTAT)(σj1Avj)=σiσj1viT(ATAvj)=σiσjviTvj=δij,i=1,2,,r;j=1,2,,r
那现在要做的就是把u扩展成m维,使得U1到Um变成m维空间中的一组正交基,只是从r维往后的U是落在Ax=o解空间里面了。
所以可以这样定义U:
U 2 = [ u r + 1 u r + 2 ⋯ u m ] U = [ U 1 U 2 ] \begin{array}{l} U_{2}=\left[\begin{array}{lll} u_{r+1} & u_{r+2} & \cdots & u_{m} \end{array}\right] \\ U=\left[\begin{array}{ll} U_{1} & U_{2} \end{array}\right] \end{array} U2=[ur+1ur+2um]U=[U1U2]
上面都是在说A’A,所以最后,我们来验证一下上面得到的U,V和对角阵确实最终组成的是A的表达式:
U Σ V T = [ U 1 U 2 ] [ Σ 1 0 0 0 ] [ V 1 T V 2 T ] = U 1 Σ 1 V 1 T = A V 1 V 1 T = A \begin{aligned} U \Sigma V^{\mathrm{T}} &=\left[U_{1} \quad U_{2}\right]\left[\begin{array}{cc} \Sigma_{1} & 0 \\ 0 & 0 \end{array}\right]\left[\begin{array}{c} V_{1}^{\mathrm{T}} \\ V_{2}^{\mathrm{T}} \end{array}\right] \\ &=U_{1} \Sigma_{1} V_{1}^{\mathrm{T}} \\ &=A V_{1} V_{1}^{\mathrm{T}} \\ &=A \end{aligned} UΣVT=[U1U2][Σ1000][V1TV2T]=U1Σ1V1T=AV1V1T=A
其实这里V为A’A的特征向量(右奇异向量),U为AA’的特征向量(左奇异向量)。


奇异值分解的几种形式

完全奇异值分解

就是前一节里面分解的形式对矩阵所有奇异值都分解好:
A = U Σ V T A=U \Sigma V^{\mathrm{T}} A=UΣVT

紧奇异值分解

所谓紧奇异值分解,就是与原始矩阵A等秩的奇异值分解。若秩为r,紧奇异值分解就是
A = U r Σ r V r T A=U_{r} \Sigma_{r} V_{r}^{\mathrm{T}} A=UrΣrVrT
其实就是前一节中,只取U、V和对角阵的第一部分,丢掉对角阵0特征值部分,丢掉U的r后面的列,丢掉V’的r后面的行。

一般奇异值分解不特别说明的话就是紧奇异值分解。

截断奇异值分解

所谓截断奇异值分解,就是比原始矩阵A低秩的奇异值分解。
A ≈ U k Σ k V k T A \approx U_{k} \Sigma_{k} V_{k}^{\mathrm{T}} AUkΣkVkT

几何解释

下面是《统计学习方法》中给出的几何解释:
在这里插入图片描述

主要性质

矩阵的奇异值分解有如下几个主要性质:

  • 因为 A = U Σ V T A=U \Sigma V^{\mathrm{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}, \quad j=1,2, \cdots, n Avj=σjuj,j=1,2,,n
  • 矩阵A的奇异值分解中,奇异值是唯一的,而U和V不是唯一的
  • 矩阵A和 Σ \Sigma Σ的秩相等,等于正奇异值个数r
  • 矩阵A的r个右奇异向量构成A’的像空间的标准正交基,剩下n-r个右奇异向量构成A’核空间的标准正交基;矩阵A的r个左奇异向量构成A的像空间的标准正交基,m-r个左奇异向量构成A的核空间的标准正交基

奇异值分解的计算

其实根据前一节奇异值分解定理的证明过程,对奇异值分解的计算过程也应当理解迅速了。矩阵A的奇异值分解可以通过求对称矩阵A’A的特征向量和特征值得到。A’A的特征向量构成正交矩阵V的列,特征值的平方根为奇异值。由小到大排列后作为对角线元素,构成对角矩阵。之后求奇异值对应的左奇异向量,再扩充标准正交基,构成正交矩阵U的列。

上面一段话可以总结分成下面几个步骤:

  • A T A A^TA ATA的特征值和特征向量
  • 求n阶正交矩阵V
  • 求m x n对角矩阵 Σ \Sigma Σ
  • 求m阶正交矩阵U
  • 得出奇异值分解

奇异值分解与矩阵近似

弗罗贝尼乌斯范数

弗罗贝尼乌斯范数的表达式如下,这里a代表矩阵中的元素。弗罗贝尼乌斯范数就是矩阵中所有元素的平方和再开更号,也就是矩阵的二范数,也就是L2范数的推广。
∥ A ∥ F = ( ∑ i = 1 m ∑ j = 1 n ( a i j ) 2 ) 1 2 \|A\|_{F}=\left(\sum_{i=1}^{m} \sum_{j=1}^{n}\left(a_{i j}\right)^{2}\right)^{\frac{1}{2}} AF=(i=1mj=1n(aij)2)21
引入这个范数后,可得如下结论:
∥ A ∥ F = ( σ 1 2 + σ 2 2 + ⋯ + σ n 2 ) 1 2 \|A\|_{F}=\left(\sigma_{1}^{2}+\sigma_{2}^{2}+\cdots+\sigma_{n}^{2}\right)^{\frac{1}{2}} AF=(σ12+σ22++σn2)21
这里的 σ \sigma σ是矩阵的奇异值。这个结论很有用,下一节说明结论代表了什么意思。先看看这个结论的证明。

这个证明很简单,要证明上面的式子等价于证明
∥ Q A ∥ F = ∥ A ∥ F \|Q A\|_{F}=\|A\|_{F} QAF=AF

∥ Q A ∥ F 2 = ∥ ( Q a 1 , Q a 2 , ⋯   , Q a n ) ∥ F 2 = ∑ i = 1 n ∥ Q a i ∥ 2 2 = ∑ i = 1 n ∥ a i ∥ 2 2 = ∥ A ∥ F 2 \begin{aligned} \|Q A\|_{F}^{2} &=\left\|\left(Q a_{1}, Q a_{2}, \cdots, Q a_{n}\right)\right\|_{F}^{2} \\ &=\sum_{i=1}^{n}\left\|Q a_{i}\right\|_{2}^{2}=\sum_{i=1}^{n}\left\|a_{i}\right\|_{2}^{2}=\|A\|_{F}^{2} \end{aligned} QAF2=(Qa1,Qa2,,Qan)F2=i=1nQai22=i=1nai22=AF2
所以
∥ A ∥ F = ∥ U Σ V T ∥ F = ∥ Σ ∥ F \|A\|_{F}=\left\|U \Sigma V^{\mathrm{T}}\right\|_{F}=\|\Sigma\|_{F} AF=UΣVTF=ΣF
得证。

矩阵的最优近似

现在就来谈谈上面的那个结论代表了什么意思了。其实奇异值分解可视作平方损失弗罗贝尼乌斯范数意义下对矩阵的最优近似,也就是说,如果用弗罗贝尼乌斯范数来衡量矩阵的信息,那么奇异值分解一丁点都没有损伤矩阵的信息,从而还达成了压缩的效果。

关于最优近似的一个定理1
在这里插入图片描述
也就是说,秩不超过k的所有矩阵里面,将A与其相减之后得出的能让F值达到最小的那个值,这个情况下的矩阵X就是A的最优近似。这和上面不一样了,如果k可以达到r,那一点信息损失都不会有,问题是现在k小于r,既然损失没法避免,那么取最小的就是自然的思想。这里的损失函数也就是弗罗贝尼乌斯范数。

另一个定理2为:
在这里插入图片描述
特别地,若 A ′ = U Σ ′ V T A^{\prime}=U \Sigma^{\prime} V^{\mathrm{T}} A=UΣVT,其中
Σ ′ = [ σ 1 ⋱ 0 σ k 0 0 ⋱ 0 ] = [ Σ k 0 0 0 ] \Sigma^{\prime}=\left[\begin{array}{ccccc} \sigma_{1} & & & & \\ & \ddots & & & 0 \\ & & \sigma_{k} & & \\ & & & 0 & & \\ & 0 & & & \ddots & \\ & & & & & 0 \end{array}\right]=\left[\begin{array}{cc} \Sigma_{k} & 0 \\ 0 & 0 \end{array}\right] Σ=σ10σk000=[Σk000]

∥ A − A ′ ∥ F = ( σ k + 1 2 + σ k + 2 2 + ⋯ + σ n 2 ) 1 2 = min ⁡ S ∈ M ∥ A − S ∥ F \left\|A-A^{\prime}\right\|_{F}=\left(\sigma_{k+1}^{2}+\sigma_{k+2}^{2}+\cdots+\sigma_{n}^{2}\right)^{\frac{1}{2}}=\min _{S \in \mathcal{M}}\|A-S\|_{F} AAF=(σk+12+σk+22++σn2)21=SMminASF

也就是说,如果按定理1说的那样,找到了这样一个矩阵X,那么在X的近似下和原来A差多少呢?也就是说用了X近似之后损失了多少信息呢?定理2告诉你,在用弗罗贝尼乌斯当做评价指标的情况下,差了 ( σ k + 1 2 + σ k + 2 2 + ⋯ + σ n 2 ) 1 2 \left(\sigma_{k+1}^{2}+\sigma_{k+2}^{2}+\cdots+\sigma_{n}^{2}\right)^{\frac{1}{2}} (σk+12+σk+22++σn2)21这么多。

也就是说A的信息被遗弃的最少的情况( min ⁡ S ∈ M ∥ A − S ∥ F \min _{S \in \mathcal{M}}\|A-S\|_{F} minSMASF)再少也少不过 ( σ k + 1 2 + σ k + 2 2 + ⋯ + σ n 2 ) 1 2 \left(\sigma_{k+1}^{2}+\sigma_{k+2}^{2}+\cdots+\sigma_{n}^{2}\right)^{\frac{1}{2}} (σk+12+σk+22++σn2)21这么多,能达成这样这已经是最优了,是最优近似了。而A’就是那个最优近似,即 X = A ′ = U Σ ′ V T X=A^{\prime}=U \Sigma^{\prime} V^{\mathrm{T}} X=A=UΣVT

这里的证明较为繁琐,就不展开说明了。这里的A’其实就是截断奇异值分解,是秩为k的所有矩阵中在弗罗贝尼乌斯范数意义下对A的最优近似矩阵

  • 11
    点赞
  • 51
    收藏
    觉得还不错? 一键收藏
  • 6
    评论
基于小波变换的奇异值分解(Wavelet-based Singular Value Decomposition,WSVD)是一种将数据分解为小波基和数据的奇异值分解的方法。这种方法在信号处理、图像处理、机器学习等领域有着广泛的应用。 WSVD的基本步骤如下: 1. **小波变换**:首先,使用小波函数对数据进行小波变换,将数据从原始尺度转换为一系列的小波系数。这些系数包含了数据的局部特征和细节信息。 2. **奇异值分解**:然后,对小波系数进行奇异值分解奇异值分解是一种将数据矩阵分解为几个特征向量的方法。具体来说,假设我们有一个大小为m×n的数据矩阵A,它的每一行是一个m维的数据向量,那么我们可以将A表示为三个矩阵的乘积:U, S, V^T,其中U和V是正交矩阵,S是对角线元素为奇异值的对角矩阵。 3. **融合**:最后,将小波变换的结果与奇异值分解的结果融合。具体来说,我们可以将小波变换的结果视为数据的局部特征和细节信息,而奇异值分解的结果则提供了数据的全局特征和统计信息。通过融合这两个结果,我们可以得到更全面的数据描述。 WSVD的优势在于它能够同时捕捉到数据的局部和全局特征,这对于许多应用来说是非常有用的。例如,在图像处理中,WSVD可以帮助我们更好地理解图像的纹理和结构;在机器学习中,WSVD可以帮助我们更好地理解数据的分布和特征。 需要注意的是,WSVD是一种高级的分解方法,需要一定的数学和信号处理知识才能理解和应用。在实际应用中,我们通常会结合其他方法(如主成分分析、独立成分分析等)来使用WSVD,以获得更好的效果。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值