svd奇异值分解_矩阵的奇异值(SVD)分解及其简单应用

(文章有的地方会乱码。。。刷新几遍就行了)

矩阵分解的用途非常广泛,比较常用的有接下来主要讲到的奇异值分解 (Singular Value Decomposition 以下简称 SVD分解),Schur分解,特征值分解(对于可对角化矩阵而言),Jordan分解(对于不可对角化矩阵而言)等等。矩阵分解的目的很明确,一方面是为了“打开”矩阵,使得矩阵的信息更加一目了然,比如将一个矩阵进行SVD分解后我们就能知道了矩阵的秩,范数(2-范数,F-范数等等)和矩阵条件数等等;另一方面是为了方便对矩阵进行计算,比如解线性方程组,线性最小二乘问题等等。接下来我们仔细讲解矩阵的SVD分解。

矩阵的SVD分解定理:对于任意矩阵

, 存在酉阵
使得

其中

,并且

,
,

其中

被称作
奇异值.

注:

无论是

还是
矩阵奇异值的个数都是是等于其行数。

若所遇到的矩阵是实矩阵,则上述所有矩阵的共轭转置等价为转置,即

.

,则
,其中
.

接下来我们主要讨论

的情况,其结论可以轻易的推广至
的情况。

若记

其中

分别被称为奇异值
对应的
左奇异向量和右奇异向量或统称为 奇异向量。

几何意义:SVD分解的几何意义是任何一个矩阵

在一系列旋转和平移下都能转化成一个对角矩阵
, 其中酉阵
的几何意义就是一系列旋转和平移的叠加。另外,奇异值的几何意义是:矩阵
将向量空间
中的单位球(半径为1),映射为一个椭球体,椭球的每个轴的长度就是每个奇异值的大小。例如,在二维平面
中:下左图是一个半径为1的球,下右图是椭圆长轴长度是
, 短轴长度是
(由于
是个二维变换,即使说
, 所以只有两个奇异值)。

a9a224b0d3201e9921a5c0389b2777ec.png

此外,我们可以用

的最大奇异值
来定义矩阵的2-范数:
。 也就是说对于任意一个单位向量
, 在
的作用下得到的向量
所能达到的最大长度是

奇异值与特征值之间的关系:矩阵的特征值与奇异值之间存在着千丝万缕的关系,但是两者并不完全相同。

1,只有方矩阵才有特征值与特征向量,但是任意一个矩阵都有奇异值与奇异向量。

2,矩阵的特征值有可能是是复数(即使是实数矩阵,其特征值也有可能是复数),但是矩阵的奇异值一定是非负实数(即使矩阵是复数矩阵,其奇异值也一定是非负实数)。

3,矩阵

的奇异值
特征值的算术平方根,同时
是矩阵
的所有特征值的算术平方根。

4,对于一个方矩阵

来说,它的任意一个特征值
与其奇异值之间有下面关系

5,当矩阵是对称(或Hermite)半正定(或正定)时,矩阵的奇异值和奇异向量就是矩阵的特征值与特征向量。一般情况下,此结论不成立。

等等。。。

稳定性: 在实际使用计算机计算时,SVD分解在数值计算上是很稳定的,这是因为SVD分解是对

进行一系列正交变换(旋转和平移就是正交变换),而正交变换在实际计算中是很稳定的(这是因为正交矩阵的条件数(酉不变范数下)都是1),例如:对于一个真实数据
和扰动后的矩阵
, 其中
是误差(存储数据和对数据进行计算时都会使真实数据产生误差, 这一误差可以在某种程度上减弱,但很难彻底消除),则有下面的式子成立:

其中,

奇异值,也就是说,只要误差足够小我们算出的奇异值就会足够靠近真实矩阵的奇异值,而特征值一般是不具有的这么良好的稳定性,也就是说,即使
很小,
的特征值有可能和
的特征值相差很大,例如

不难看出

的两个特征值都是1,而我们只在
的左下角的分量添加了一个很小的扰动
, 但是
的特征值是 1.223606797749979 和 0.776393202250021,与 1 相差太大,根本达不到一般情况下我们所要求的精度。但是

两个奇异值是:50000.00002和0.000020

两个奇异值是:50000.00002和0.000019

几乎相差无几。也正是因为SVD分解的数值稳定性,才使得其有很多广泛的应用。

秩:由于

均是可逆矩阵(酉阵一定可逆), 所以
, 所以
中非零奇异值的个数就是矩阵的秩,这就是计算机判断矩阵秩的常用办法。

我们假设:

, 即
, 于是

, 所以通过矩阵的分块我们有

其中

是我们在实际生活中经常用到的,被称作
经济型SVD分解。并且不难证明
的值域等于
的值域,
的核空间(零空间)等于
的值域,即

另外,对于给定的一个矩阵

,我们想要找一个秩等于(或小于)
(可以是给定的小于等于
的正整数)的矩阵
使得
“距离”最小,那么我们该如何选取
?首先我们要明确“距离”这一个概念,刻画矩阵之间的“距离”所用到的工具是范数(可以是任意一种范数),即是当
很小时,我们认为
之间的“距离”很小。其次我们有对任意一种酉不变范数
(常见的有2-范数和F-范数),有下面结论成立

其中

被称为
最佳值
近似, 如果
则解
唯一,若
,则解
不唯一。
注意,上述结果仅适用于酉不变范数,而且对于不同的酉不变范数,
也不一定相同等。例如,当上述范数为2-范数时

当上述范数为F-范数时

.

所以,我们有时可以用

去近似
。可以看出
对于一个矩阵
来说,它的主要信息包含在大奇异值和其所对应的左右奇异向量中。

另外,我们也可以看出最小奇异值

的另一个几何意义:将所有
非列满秩矩阵看做一个集合
,则
表示的是
到集合
的距离:
。若
,则
不是列满秩矩阵。

范数:利用奇异值我们可以定义更多的矩阵的酉不变范数,例如,定义如下范数

是一类酉不变范数。

时被称为
能量范数, 通常记为
于是

时就是我们常见的F-范数 ,

时就是我们常见的2-范数 ,

能量范数通常被应用在图能量的计算上。

Moore-Penrose 广义逆:Moore-Penrose 广义逆是对矩阵逆的概念的一种推广,一般来时只有可逆矩阵

才具有逆矩阵
,
而对任意矩阵来说都存在Moore-Penrose 广义逆,无论矩阵是否可逆,是否是方矩阵。Moore-Penrose 广义逆定义如下:

Moore-Penrose 广义逆定义:对于一个矩阵

, 若矩阵
,满足以下四条:

则称

Moore-Penrose 广义逆, 记做

注:Moore-Penrose 广义逆有时也被称作伪逆。

除了Moore-Penrose 广义逆外,还有其他的矩阵广义逆的定义,例如:如果

只满足条件
,则
被称作1-(广义)逆, 记做
, 如果
只满足条件
,则称之为1,2,4-(广义)逆,记做
。 诸如此类,我们可以定义更多的矩阵广义逆,但这些广义逆大都不唯一(像前面提到的1-逆,和1,2,4-逆都是不唯一的)。但是,
当且仅当上述四个条件都成立时,
才被称作Moore-Penrose 广义逆,并且一个矩阵的Moore-Penrose 广义逆是唯一的。

利用SVD分解可以很好地定义并计算矩阵的Moore-Penrose广义逆。不难看出:

是满足上面的四个条件的。由于Moore-Penrose 广义逆的唯一性,所以在实际计算中我们通常利用SVD分解来计算一个矩阵的广义逆。

此外,我们也可以利用SVD分解定义上面所提到的1-逆:

其中

是任意矩阵,易证上面定义的
满足条件
, 下面我们定义1,2,4-逆

易证上面定义的

满足条件
。诸如此类,我们可以定义矩阵的其他的广义逆。

极分解:根据矩阵的SVD分解,可以很容易得到矩阵的极分解

定理:对于任意一个矩阵

都存在
极分解

其中

是酉阵,
是Hermite 半正定矩阵。

容易看出:

, 于是,可令

下面简单说一说SVD分解的具体应用。

应用一:截断SVD分解(tSVD): 如果存在

,使得
,此时我们认为此
矩阵的奇异值耗散很快,根据最佳值k近似可以看出,此时可以用
近似
,将
和其对应的左右奇异向量扔去, 这一近似的误差和
是一个量级的。这一过程叫做
截断SVD(tSVD),这一过程保留的原矩阵的大部分信息。甚至有时数据经过这种的处理会变得更好,这是因为很小的奇异值和其左右奇异向量往往对应的是数据的“噪声”,这种tSVD分解的操作反而起到了去噪的作用,使得我们的数据更加“纯洁”。

这一做法只对奇异值耗散很快的矩阵有效,但是如果矩阵的奇异值耗散并不是很快,则tSVD分解的近似并不会很好。

应用二:求插积矩阵特征值与特征向量: 此外我们可以得到:

, 所以
恰好是矩阵
的特征值与特征向量,
恰好是
的特征值,
是其特征向量,其中
。于是在一些实际情况中我们会遇到求解插积矩阵
(或
)的特征值和特征向量时,我们大可不必在计算机上算出矩阵
,然后再求其特征值与特征向量,这是因为计算机的浮点误差会导致计算得到的
丢掉一部分信息。例如

如果

, 则计算机会认为
是0,即使说计算机会认为
是一个不可逆矩阵,这其实是不准确的。此外,计算插积矩阵除了会丢失精度外,还会增加不必要的计算和存储量,例如假设
是一个稀疏矩阵(非零分量占到全部分量的
以下),但是仅仅计算
所需要的计算量大概是
, 而
也极有可能变成一个稠密矩阵,会占大量的储存量。如果
的维数又很大(
很大),那么最终我们所面临的将是求一个大型稠密矩阵的特征值,这一工作量(大概是
)将会远远大于计算
的工作量,并且精度不会很高。所以无论从哪一方面看,这一方法都是不可取的。因此,我们只需要对
进行SVD分解即可,由于只需要
的特征值与特征向量,所以我们只需要计算
,而这一工作量大概只有
,这一工作量大概是计算
的工作量的两倍多一点,但是我们已经得到了我们想要的特征值与特征向量,并且节约了大量的存储。

SVD分解相关MATLAB代码:

—————————————————分割线——————————————————

以下是提供给具有一定的泛函分析基础(了解 Hilbert 空间和紧自伴算子及其谱分解概念)的读者阅读。。。。

从更广义的观点来看,矩阵

本质上是一个(有限维)算子(将
映射到
),而欧式空间
可以看做是(有限维)Hilbert 空间。接下来我们就将有限维的SVD分解定理推广到无穷维空间上去。

先交代几个记号:

是两个Hilbert 空间,
表示从
上的所有有界线性算子构成的空间。

Hilbert 空间上的SVD分解:

是一个紧算子,
表示投影到
的正交投影算子,则存在
奇异值
标准正交系统
使得对

并且

(

)被称作
奇异系统

如果

,则上面两个式子中的求和只有有限项。对于
, 我们令

奇异值

被算子
唯一决定
。并且

~~~~~关于矩阵奇异值分解的理论非常丰富,考虑到受众大小,和本人水平有限,就先写到这儿吧。

时间仓促,本人水平有限,难免有不准确之处,望读者批评指正

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值