在很多线性代数问题中,如果我们首先思考若做SVD,情况将会怎样,那么问题可能会得到更好的理解[1]。

                                      --Lloyd N. Trefethen & David Bau, lll

为了讨论问题的方便以及实际中遇到的大多数问题,在这里我们仅限于讨论实数矩阵,注意,其中涉及到的结论也很容易将其扩展到复矩阵中(实际上,很多教材采用的是复矩阵的描述方式),另外,使用符号 x,y 等表示向量,A,B,Q等表示矩阵。

首先给出正交矩阵的概念。所谓正交矩阵,即该矩阵不同的两个列向量之间作内积等于0(平面几何中垂直的定义在多维情形下推广),相同的列向量和自身做内积等于1(单位向量)。特别地,如果Q是一个n阶正交方阵,则Q'Q=QQ'=I, 即正交矩阵的转置即是该矩阵的逆矩阵。正交矩阵在数值分析中起着很重要的作用,一个主要的原因是它能够保持向量的2范数不变(因此SVD也常用于最小二乘问题的求解中),以及矩阵的2范数以及F范数不变,即||Qx||_2=||x||_2, ||AQ||_2=||A||_2,||QA||_F=||A||_F。

奇异值分解定理:对于任意一个 m*n 的实数矩阵 A,都存在 m*m 的正交矩阵 U 和 n*n 的正交矩阵V,以及 m*n 的对角矩阵 D=diag(d_1,d_2,...,d_r),使得

  A = UDV'

其中,d_1>=d_2>=...>=d_r>=0 称为奇异值,U和V的各列分别称为左奇异向量右奇异向量

奇异值分解定理是一个漂亮优美的结果。它不仅能够很好地描述矩阵的结构,一个秩为r的矩阵可以表示成r个秩为1的矩阵之和,而且也给出了相应的几何意义,n 维单位向量 x 在任意的 m*n 矩阵 A=UDV' 下的像下是 m 维空间中的一个超椭球。具体地,正交变换V'保持了x的向量长度不变,对角矩阵D将球面拉伸到一个超椭球上,最后正交变换U将旋转这个超椭球,但不改变它的形状,参见下图。

图1 SVD几何解释示意图[2]

奇异值分解的矩阵性质:

1. 矩阵 A 的秩等于非零奇异值的个数

2. 矩阵 A 的值域空间等于由 U 的前 r 个列向量张成的空间,而 A 的零空间是由 V 的后面 n-r 个列向量张成的空间。

3. ||A||_2=d_1, ||A||_F=sqrt(d_1+...+d_r)。

4. A 的非零奇异值的平方等于 AA' 和 A’A 的非零特征值。

注意,一旦能够得到A的奇异值分解,按照上述给出的性质,那么关于A的秩,A的值域或者零空间的基,以及A的2-范数,F-范数等就自然地能够得到。从这方面来看,SVD可以看作是求解这些问题的一个工具。除此之外,它还被广泛地用来求解最小二乘问题,正则化问题,低秩逼近问题,数据压缩问题,文本处理中的分类问题[4]等

细心的童鞋发现,上面的所有结论都是建立在SVD定理正确以及能够有效计算出给定矩阵A的SVD分解的基础上。关于第一个问题,可以使用数学归纳法进行证明[3];第二个问题,由于证明中采用了数学归纳法,显然它不能有效地求解出具体矩阵的SVD分解,而数值求解SVD需要借助于对称矩阵的特征值分解(一个简单的想法是对 AA' 进行特征值分解,然后得到 A 的奇异值分解,可惜该类方法数值稳定性较差,细节内容不展开叙述)。

最后,对矩阵的奇异值和矩阵的特征值之间的联系进行几点说明。第一,对于任意矩阵,都存在奇异值分解,而并非所有矩阵都存在特征值分解的;第二,奇异值分解中使用的是正交的矩阵,而特征值分解中使用的基一般不是正交的;第三,矩阵最小奇异值小于矩阵最小特征值的模长,矩阵最大奇异值大于矩阵最大奇异值的模长[5]。

参考文献:

[1] 数值线性代数 Chap4-5,L N. Trefethen,David Bau, lll 著,陆金甫,关治译,人民邮电出版社,2006年

[2] 应用数值线性代数,J W. Demmel 著,王国荣译,人民邮电出版社,2007年

[3] 矩阵计算(第三版),Gene H.Golub,Charles F.Van Loan 著,袁亚湘等译,人民邮电出版社,2011年

[4] 数学之美 Chap15,吴军著,人民邮电出版社,2013年

[5] 矩阵A的特征值与奇异值大小关系? https://www.zhihu.com/question/40181430/answer/85446211

作者:caicailiu 出处:http://www.cnblogs.com/liuyc/  欢迎转载或分享,但请务必声明文章出处。

数值分析之奇异值分解(SVD)篇的更多相关文章

  1. 转载:奇异值分解(SVD) --- 线性变换几何意义(下)

    本文转载自他人: PS:一直以来对SVD分解似懂非懂,此文为译文,原文以细致的分析+大量的可视化图形演示了SVD的几何意义.能在有限的篇幅把这个问题讲解的如此清晰,实属不易.原文举了一个简单的图像处理 ...

  2. 奇异值分解(SVD) --- 几何意义

    原文:http://blog.sciencenet.cn/blog-696950-699432.html PS:一直以来对SVD分解似懂非懂,此文为译文,原文以细致的分析+大量的可视化图形演示了SVD ...

  3. [机器学习笔记]奇异值分解SVD简介及其在推荐系统中的简单应用

    本文先从几何意义上对奇异值分解SVD进行简单介绍,然后分析了特征值分解与奇异值分解的区别与联系,最后用python实现将SVD应用于推荐系统. 1.SVD详解 SVD(singular value d ...

  4. 【转载】奇异值分解(SVD)计算过程示例

    原文链接:奇异值分解(SVD)的计算方法 奇异值分解是线性代数中一种重要的矩阵分解方法,这篇文章通过一个具体的例子来说明如何对一个矩阵A进行奇异值分解. 首先,对于一个m*n的矩阵,如果存在正交矩阵U ...

  5. 一步步教你轻松学奇异值分解SVD降维算法

    一步步教你轻松学奇异值分解SVD降维算法 (白宁超 2018年10月24日09:04:56 ) 摘要:奇异值分解(singular value decomposition)是线性代数中一种重要的矩阵分 ...

  6. 用 GSL 求解超定方程组及矩阵的奇异值分解(SVD)

    用 GSL 求解超定方程组及矩阵的奇异值分解(SVD) 最近在学习高动态图像(HDR)合成的算法,其中需要求解一个超定方程组,因此花了点时间研究了一下如何用 GSL 来解决这个问题. GSL 里是有最 ...

  7. 奇异值分解(SVD)原理详解及推导(转载)

    转载请声明出处http://blog.csdn.net/zhongkejingwang/article/details/43053513 在网上看到有很多文章介绍SVD的,讲的也都不错,但是感觉还是有 ...

  8. 奇异值分解(SVD) --- 几何意义 (转载)

    PS:一直以来对SVD分解似懂非懂,此文为译文,原文以细致的分析+大量的可视化图形演示了SVD的几何意义.能在有限的篇幅把 这个问题讲解的如此清晰,实属不易.原文举了一个简单的图像处理问题,简单形象, ...

  9. 奇异值分解(SVD)原理详解及推导 (转载)

    转载请声明出处http://blog.csdn.net/zhongkejingwang/article/details/43053513 在网上看到有很多文章介绍SVD的,讲的也都不错,但是感觉还是有 ...

随机推荐

  1. 我常用的grep命令

    查找包含某个字符的行并保存在文件 grep -rn 'test' ./*.sql >test.sql -r 是递归查找 -n 是显示行号 在当前目录下的.sql结尾的文件中查找包含 test 字 ...

  2. “连接配置中心失败,将无法进行正常管理”--腾讯通RTX管理器

    [故障现象]: 腾讯通RTX管理器提示“连接配置中心失败,将无法进行正常管理” [解决办法]: 在系统服务中启动“RTX_ConfigCenter”服务即可. 文章收集自网络

  3. hibernate中HQL多对多的查询

    现有三张表 TLXPURCHASE.采购事项审批表,TLXPURCHASEACTIVITY.采购招标活动对应表,TLXACTIVITY.招标活动表,采购事项审批表和采购活动表是多对多关系.java中定 ...

  4. ios build时,Undefined symbols for architecture xxx问题的总结

    简单来说,Undefined symbols基本上等于JAVA的ClassNotFoundException,最常见的原因有这几种: build的时候没有加framework 比如说,有一段代码我用了 ...

  5. ios如何一个证书多台设备测试

    在苹果开发者网站申请的证书,是授权mac设备的开发或者发布的证书,这意味着一个设备对应一个证书,但是99美元账号只允许生成3个发布证书,两个开发证书,这满足不了多mac设备的使用,使用p12文件可以解 ...

  6. 错误:ORA-28009: connection as SYS should be as SYSDBA or SYSOPER 的解决办法--转载但验证过后可以用

    今天,用iSQL*Plus 以sys用户连接数据库的时候报ORA-28009:connection as sys should be as sysdba or sysoper的错误,不知道是怎么回事, ...

  7. 数据库事务(Database Transaction)概述

    事务概念 事务可以用很多很多不同的方式去定义.事务是数据库操作执行的一个逻辑工作单元,是用户定义的一个数据库操作序列,这些操作要么全做要么全不做,是一个不可分割的工作单位.例如, 在关系数据库中, 一 ...

  8. [Android]电话拨号器开发

    继续今天的Android,经过昨天大体了解了Android开发的一些基本文件结构,今天来做一个电话拨号器! 预期达到的效果 实现过程 首先还是按照昨天第一篇教程,新建一个项目叫PhoneCall的An ...

  9. Maven入门指南① :Maven 快速入门及简单使用

    原文链接:http://www.cnblogs.com/luotaoyeah/archive/2014/06/02/3764533.html 开发环境 MyEclipse 2014 JDK 1.8 M ...

  10. PHP 检查并创建多级目录

    <?php //检查并创建多级目录    function checkDir($path){        $pathArray = explode('/',$path);        $no ...