首页 > 编程知识 正文

什么叫奇异值分解,奇异值的意义

时间:2023-05-03 12:05:48 阅读:262863 作者:4893

矩阵的奇异值是一个数学意义上的概念,一般是由奇异值分解(Singular Value Decomposition,简称SVD分解)得到。如果要问奇异值表示什么物理意义,那么就必须考虑在不同的实际工程应用中奇异值所对应的含义。下面先尽量避开严格的数学符号推导,直观的从一张图片出发,让我们来看看奇异值代表什么意义。 
这是一张照片,像素为高度450*宽度333。

我们都知道,图片实际上对应着一个矩阵,矩阵的大小就是像素大小,比如这张图对应的矩阵阶数就是450*333,矩阵上每个元素的数值对应着像素值.我们记这个像素矩阵为A
现在我们对矩阵A进行奇异值分解.直观上,奇异值分解将矩阵分解成若干个秩为一的矩阵之和,用公式表示就是:
(1)
其中等式右边每一项前的系数就是奇异值,u和v分别表示列向量,秩一矩阵的意思是矩阵秩为1。注意到每一项都是秩为1的矩阵。我们假定奇异值满足o1 >o2..>or, > 0(奇异值大于0是个重要的性质,但这里先别在意),如果不满足的话重新排列顺序即可,这无非是编号顺序的问题。
既然奇异值有从大到小排列的顺序,我们自然要问,如果只保留大的奇异值,舍去较小的奇异值,这样(1)式里的等式自然不再成立,那会得到怎样的矩阵(图像)?
令,这只保留(1)中等式右边第一项,然后作图:





当我们取(1)的前50项的时候,

我们得到和原图差别不大的图像.也就是说当k从1不断增大时,Ak不断的逼近A.让我们回到公式

矩阵A表示一个450*333的矩阵,需要保存450×333=149850个元素的值。等式右边u和v分别是450*1和333*1的向量,每一项有1+450+333=784个元素。如果我们要存储很多高清的图片,而又受限于存储空间的限制在尽可能保证图像可被识别的精度的前提下,我们可以保留奇异值较大的若干项,舍去奇异值较小的项即可.例如在上面的例子中,如果我们只保留奇异值分解的前50项,则需要存储的元素为784×50=39200,和存储原始矩阵A相比,存储量仅为后者的26%。

奇异值往往对应着矩阵中隐含的重要信息,且重要性和奇异值大小正相关。每个矩阵A都可以表示为一系列秩为1的“小矩阵”之和,而奇异值则衡量了这些“小矩阵”对于A的权重。
在图像处理领域,奇异值不仅可以应用在数据压缩上,还可以对图像去噪如果一副图像包含噪声,我们有理由相信那些较小的奇异值就是由于噪声引起的。当我们强行令这些较小的奇异值为0时,就可以去除图片中的噪声。
如下是一张25*15的图像

但往往我们只能得到如下带有噪声的图像(和无噪声图像相比,下图的部分白格子中带有灰色)∶

通过奇异值分解,我们发现矩阵的奇异值从大到小分别为:14.15,4.67,3.00,0.21,0.05。除了前3个奇异值较大以外,其余奇异值相比之下都很小.强行令这些小奇异值为0,然后只用前3个奇异值构造新的矩阵,得到

可以明显看出噪声减少了(白格子上灰白相间的图案减少了)。

奇异值分解还广泛的用于主成分分析(Principle Component Analysis,简称PCA)和推荐系统(如Netflex的电影推荐系统)等。在这些应用领域,奇异值也有相应的意义。

                                                                           奇异值重构图片

可以看到,当我们取到前面120个奇异值来重构图片时,基本上已经看不出与原图片有多大的差别。

从上面的图片的压缩结果中可以看出来,奇异值可以被看作成一个矩阵的代表值,或者说,奇异值能够代表这个矩阵的信息。当奇异值越大时,它代表的信息越多。因此,我们取前面若干个最大的奇异值,就可以基本上还原出数据本身。

如下,可以作出奇异值数值变化和前部分奇异值和的曲线图,如下图所示

                                                                                       奇异值变化图

从上面的第1个图,可以看出,奇异值下降是非常快的,因此可以只取前面几个奇异值,便可基本表达出原矩阵的信息。从第2个图,可以看出,当取到前100个奇异值时,这100个奇异值的和已经占总和的95%左右。

References:奇异值的物理意义是什么? - 知乎

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。