超详细解释奇异值分解(SVD)【附例题和分析】
对于任意矩阵有四个非常重要的子空间:列空间(column space),行空间(row space),左零空间(left nullspace),零空间(nullspace)。但,当矩阵非方阵(rectangular matrix),以上分解是行不通的,因为该矩阵没有特征值这一概念的。为3行3列的矩阵,这两个矩阵都拥有特征值9,开根号后刚好为3,与以上讨论一致。的特征值开根号,得到的就是该矩阵主对角
目录
一. 矩阵对角化
线性代数中,常出现把矩阵进行对角化的过程,然后将其应用于简化计算,解方程等等。但是,只有对称矩阵才可以对角化。另外,方阵才有特征值和特征向量的说法。
给定m行n列的矩阵A,如下方程:
该方程可能有一个解,可能有无数个解,也可能会出现无解的情况。
但我们知道和都是方阵,且都是半正定矩阵,所以可以对角化而且特征值都大于等于0。于是,以上方程有解:
二. 奇异值分解
奇异值分解,singular value decomposition,通常简写为SVD分解。
备注:建议看这部分知识的小伙伴可以先看矩阵的LU分解,QR分解。
已知正定矩阵(positive definite matrix),如果我们想分析它的特征值和特征向量,可将其分解为如下:
其中为对角矩阵,即为原始矩阵的特征值。Q为特征向量形成矩阵,如果原始矩阵为对称矩阵,矩阵Q可为标准正交矩阵,满足如下:
但,当矩阵非方阵(rectangular matrix),以上分解是行不通的,因为该矩阵没有特征值这一概念的。
由此,便出现了对矩阵进行SVD分解,通式如下:
其中为对角阵(非方阵),将其对角线处非零的元素记为,此对角矩阵有两种理解方式:
- 的特征值;
- A的奇异值(singular value)
主对角线处的元素个数与原始矩阵A的秩有关。
备注:此处的矩阵A可以是任意矩阵,但和都一定为方阵。所以经常会利用这两个方阵来理解奇异值和特征值的区别。
对任意m行n列的矩阵A,奇异值分解的综合理解如下:
正交矩阵U:m行m列,该矩阵的每一个列向量都是的特征向量;
正交矩阵V:n行n列,该矩阵的每一个列向量都是的特征向量;
对角阵:m行n列,将或的特征值开根号,得到的就是该矩阵主对角线上的元素,也可以看成矩阵A的奇异值。
三. 对比奇异值分解与特征值分解
对于正定矩阵来讲,以上讨论的与是一样的,与是一样的。
对于非正定矩阵(要求是对称矩阵),此时会出现负数,但依旧为正数。
推广到复数矩阵,对于SVD分解,此时的U和V即为酉矩阵(unitary),满足如下:
其中,和代表共轭转置。
但中的元素依旧为实数。
四. SVD分解与四大基础子空间
对于任意矩阵有四个非常重要的子空间:列空间(column space),行空间(row space),左零空间(left nullspace),零空间(nullspace)。
假定某m行n列矩阵A的秩为r,将矩阵U和V的列向量可以作为不同空间的标准正交基,如下:
- 矩阵U的前r个列向量可以作为A列空间的标准正交基;
- 矩阵U的后m-r个列向量可以作为A左零空间的标准正交基;
- 矩阵V的前r个列向量可以作为A行空间的标准正交基;
- 矩阵U的后n-r个列向量可以作为A零空间的标准正交基;
如下:
五. SVD分解的正交矩阵
已知,两边同时乘以正交矩阵V,可得:
这个结果有一个很有意思的理解角度:从矩阵V中随机抽取一个列向量,对应位置抽取对角阵的元素,以及矩阵U的列向量,可得:
六. 方阵与SVD分解
对方阵做SVD分解,如下:
此时U即为的特征向量形成的矩阵,为的特征值。
同理,对运算如下:
此时V即为的特征向量形成的矩阵,为的特征值。令r代表矩阵A的秩:
为m行m列的矩阵,主对角线的元素为。
为n行n列的矩阵,主对角线的元素为。
可以观察到与都为方阵,维度是不一样的,但是它们两个主对角线元素是一模一样的。
七. 单位特征向量与SVD分解
根据“六”中的讨论,的特征值为,特征向量为,由此可得:
两边同时乘以矩阵A可得:
将看成一个矩阵,看成特征向量,看成特征值。也就是说,是矩阵的特征向量。易得:
所以可得向量的长度为,那么可得单位向量为:
综合可得:
以上过程的本质就是
八. 例题分析:秩为1
对以下矩阵A进行SVD分解,并分析相关性质:
解:
该矩阵仅有一列,所以秩r=1,这也就意味着该矩阵进行SVD分解,中间的对角阵仅有一个非零元素,如下:
对角阵主对角线仅有一个元素。
易得为1行1列的矩阵,为3行3列的矩阵,这两个矩阵都拥有特征值9,开根号后刚好为3,与以上讨论一致。
九. 例题分析:秩为2
对以下矩阵A进行SVD分解,并分析相关性质:
解:
显然,矩阵A的秩为2,易运算如下:
可以分析出该方阵的特征值为3和1.
对原始矩阵A进行SVD分解如下:
可以发现该矩阵的奇异值为和。
矩阵U的每一列可以看成A的左奇异向量,也可以看成的单位特征向量;
矩阵V的每一列可以看成A的右奇异向量,也可以看成的单位特征向量;
十. 计算机网络与矩阵的秩
我们都知道矩阵的秩代表的是线性独立的行向量或列向量的个数。但在实际的计算中这个量不是很好分析。
在物理层安全,或无线通信中,会存在噪声,这些噪声通常很小,进而延伸出矩阵有效的秩概念。
假定是一个很小很小的数,可以将其看成所谓的误差(roundoff error)
(1)
很明显这个矩阵的秩为1
(2)
这个矩阵的秩也很好分析,为1
接下来我们来看第三个有趣的例子:
乍一看这个矩阵的秩为2,但实际情况真的如此吗?
我们知道和均为对称的方阵,并且这两个矩阵的秩与A相同。
对这两个矩阵而言,特征值开根号即为奇异值,根据这个角度不难分析刚才的矩阵A有效的秩为1(不要忘记为一个很小的数)。
开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!
更多推荐
所有评论(0)