本文主要是介绍A Singularly Valuable Decomposition(SVD奇异值分解),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
A Singularly Valuable Decomposition(SVD奇异值分解)
SVD与熟悉的对称矩阵对角化理论密切相关。 如果A是对称实数n×n矩阵,则存在正交矩阵V和对角线D,使得A= 。 这里V的列是A的特征向量,并形成Rn的正交基; D的对角线上的数值是A的特征值。为了强调与SVD的联系,我们将称为A的特征值分解或EVD。
对于SVD,任意一个实数m×n矩阵A,存在正交矩阵U和V以及一个对角矩阵,这次表示为Σ,使得A = 。 在这种情况下,U是m×m矩阵,V是n×n矩阵,所以Σ是与A的尺寸相同的矩形。Σ的对角线上的数值,即Σii=σi,可以排列成非负的并且是按幅度减小的顺序排列的。正数值σi称为A的奇异值,U和V的列称为A的左和右奇异向量。
下面先介绍一下特征值(EVD)分解:
如果说一个向量v是方阵A的特征向量,将一定可以表示成,这时候被称为特征向量v对应的特征值。
一个矩阵的一组特征向量是一组正交向量。特征分解是将一个矩阵分解成A = ,其中V是这个矩阵A的特征向量组成的矩阵,D是一个对角矩阵,每个对角矩阵上的元素就是一个特征值。
一个矩阵变换可以看成为一个线性变换,因为一个矩阵乘以一个向量后得到的向量,其实就相当于将这个向量进行了线性变换。举例如下:
eg1. 矩阵M如下:
它对应的线性变换如下面形式:
用图形描述为:
上面的矩阵是对称的,所以这个变换是一个对x,y轴的方向一个拉伸变换(每一个对角线上的元素将会对一个维度进行拉伸变换,当值>1时拉长,当值<1时缩短),当矩阵不是对称的时候,假如说矩阵是下面的样子:
eg2.
它所描述的变换的图形描述为:
这其实是在平面上对一个轴进行的拉伸变换(如蓝色的箭头所示),在图中,蓝色的箭头是一个最主要的变化方向(变化方向可能有不止一个),如果我们想要描述好一个变换,那我们就描述好这个变换主要的变化方向就好了。反过头来看看之前特征值分解的式子,分解得到的D矩阵是一个对角阵,里面的特征值是由大到小排列的,这些特征值所对应的特征向量就是描述这个矩阵变化方向(从主要的变化到次要的变化排列)。
当矩阵是高维的情况下,那么这个矩阵就是高维空间下的一个线性变换,这个线性变化可能没法通过图片来表示,但是可以想象,这个变换也同样有很多的变换方向,我们通过特征值分解得到的前N个特征向量,那么就对应了这个矩阵最主要的N个变化方向。我们利用这前N个变化方向,就可以近似这个矩阵(变换)。也就是之前说的:提取这个矩阵最重要的特征。
总结:特征值分解可以得到特征值与特征向量,特征值表示的是这个特征到底有多重要,而特征向量表示这个特征是什么,可以将每一个特征向量理解为一个线性的子空间,我们可以利用这些线性的子空间干很多的事情。不过,特征
这篇关于A Singularly Valuable Decomposition(SVD奇异值分解)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!