QR分解虽然很有用,而且具有较为稳定的性质,但也有不足之处:QR分解只能提供原矩阵A的列的一组正交基。
现在介绍的SVD分解可以分别提供对应原矩阵的行、列的正交基。

矩阵U、矩阵V的列向量都是奇异向量;
中间的对角矩阵的对角元是奇异值。


上图中的两种表示方法展现了两种SVD,前者为FULL型的,后者为THIN型的(也称经济型的)

% MATLAB函数
[U,S,V]=svd(A) %第一种的SVD分解
[U,S,V]=svd(A,0) %第二种的SVD分解,也就是thin型的SVD

矩阵的二范数保酉不变性:对矩阵A乘上酉矩阵U(也就是正交阵),前后的矩阵二范数不变。
(注:可以利用矩阵二范数||A||22=tr(ATA)+相似变换不改变矩阵的迹,相似变换不改变矩阵特征值来证明。)
于是有了以下结论,彩色笔涂的是重点。

SVD分别给出了原矩阵A的值域、零空间的正交基,如下图。

下面这张图告诉我们:SVD分解出的中间的那个对角矩阵中提供的奇异值可以反映出原矩阵A的秩。

SVD还可以用来给矩阵去噪:
A=A0+N,其中A是我们实际得到的,A0是真实中不加噪声的原数据,N表示噪声,噪声比较小。我们考虑使用SVD的方法除去噪声,取出或者说近似的得出原始矩阵A0。具体方法是对矩阵A进行SVD分解,并舍弃其中较小的奇异值和对应的奇异向量,如下图,又称为”截断SVD“,低秩近似分解,图中AK就是原矩阵A的近似矩阵。

低秩近似的二范数误差是:第k+1个奇异值

低秩近似的F范数的误差是:

下面的引理给出了矩阵内积的定义:

SVD分解出的左右奇异向量证明了,矩阵A可以表示成几个秩为1的矩阵的和。

而且,这里的秩1矩阵相互正交,如下图:

只有当i=k且j=l时,两个秩1矩阵的内积才不为0,是1.
下图是,低秩近似结果的示意图:

SVD解最小二乘问题:

  1. 列满秩的情况

    证明过程,如下图:


  2. 原矩阵A列秩亏(行数>列数)的情况
    此时,没有唯一解,但有最小范数解:


    证明过程如下:
  3. SVD解欠定方程(行数<列数)
    首先,给出欠定方程的定义:

    结论:
%MATLAB程序
[U,S,V]-svds(A,K) %针对大型稀疏矩阵所作的部分SVD分解。
%取前K个奇异值和奇异向量。

SVD的缺点是代价比较高,更新时可复用性比较差(比如,需要在其中添加新矩阵的行、列)
考虑完全正交分解:

如果使用截断SVD方法,那么怎么确认取多少项的奇异值和奇异向量呢(也就是如何确定k)?

采用降秩模型:


使用案例:
根据前文建立的文本词条矩阵,现在寻找距离查询向量q1、q2的各自低秩近似的k.

绿色字体表示使用了上述的降秩模型:


取不同的k值对这两个查询向量的逼近程度(用相对误差来衡量),结果如下:

数据挖掘--矩阵的SVD分解相关推荐

  1. Eigen 矩阵的SVD分解

    矩阵的SVD分解 一.SVD分解原理 二.SVD分解举例 三.用Eigen库实现SVD分解 1.C++代码 2.输出结果 一.SVD分解原理   奇异值分解是将一个非零的实数矩阵Am×nA_{m \t ...

  2. 线性代数(14): 对称矩阵与矩阵的SVD分解

    文章目录 1 完美的对称矩阵 2 正交对角化 3 什么是奇异值 4 奇异值的几何意义 5 矩阵的奇异值分解(SVD) 6 在numpy中使用SVD分解 参考资料 注:转载请标明原文出处链接:https ...

  3. 机器学习的数学基础(6):矩阵的SVD分解与最小二范数解

    其实在上一篇文章中遗留了两个问题.在我们讨论最小二乘回归问题解的时候,当rank(A)<min(M,N)时,问题有二:1. 解的形式为其中为标准方程的解,在非满秩的情况下如何求得此时标准方程的一 ...

  4. 数据挖掘--矩阵的QR分解

    矩阵的QR分解: A=QR,其中Q为正交矩阵,R为上三角矩阵. 具体可以通过HouseHold变换做到,分步进行,如下图: 如果矩阵A是可逆矩阵的话,那么分出的矩阵R一定是列线性无关的.此时,R的对角 ...

  5. AI 数学基础知识-方向导数与梯度、范数矩阵、SVD分解、PCA、凸函数

    原课程链接 自己的课程笔记,方便自己查漏补缺.想补充数学预备知识的友友,建议去看原视频. 相比于考研数学,这里更注重理解,而不是强调计算能力. 数分 方向导数和梯度 之后学梯度下降算法需要,考研时没学 ...

  6. 矩阵分解 SVD分解

    在认识SVD之前,先来学习两个相关的概念:正交矩阵和酉矩阵. 如果,则阶实矩阵称为正交矩阵.而酉矩阵是正交矩阵往复数域上的推广. 判断正交矩阵和酉矩阵的充分必要条件是:.或者说正交矩阵和酉矩阵的共轭转 ...

  7. 几种矩阵分解算法: LU分解,Cholesky分解,QR分解,SVD分解,Jordan分解

    目录 1.LU分解 2. LDLT分解法 3. Cholesky分解的形式 4. QR分解 5.SVD分解 5.1 SVD与广义逆矩阵 6. Jordan 分解 参考文章: ---------我只是搬 ...

  8. 【机器学习中的矩阵分解】LU分解、QR分解、SVD分解

    学习总结 文章目录 学习总结 一.三角分解(LU分解) 1.1 高斯消元 1.2 LU分解原理 1.3 LU分解python代码 1.4 LU分解算法 二.QR分解 2.1 Schmid 正交化 2. ...

  9. matlab中矩阵SVD分解

    SVD分解 matlab中自带矩阵的SVD分解函数 [U,S,V] = svd(A) %返回一个与A同大小的对角矩阵S,两个酉矩阵U和V 其中,svd分解后,得到的是V的转置矩阵V'.分解后的U.S. ...

最新文章

  1. 力扣(LeetCode)刷题,简单题(第14期)
  2. go get 失败 no go files in_Go 每日一库之 dig
  3. DLL返回自定义结构的数组
  4. [置顶]WebService学习总结(4)——第三方webService服务调用
  5. 干货下载 | 高效金融客户分析体系如何搭建?
  6. 散列--数据结构与算法JavaScript描述(8)
  7. OVS 网桥的Patch端口学习笔记
  8. 天线匹配与人体之间的关系
  9. 【模式识别-北理工】04线性分类器
  10. 树莓派怎么切换输入法_树莓派 Raspberry Pi 设置显示中文方法安装输入法
  11. 等保测评--管理机构安全(ORS)
  12. dbf文件怎么还原到oracle中,oracle dbf文件恢复数据
  13. let与var的区别(重点看例子)
  14. sql中的iif语句详解
  15. (一)移动端前端开发-移动端基础
  16. 从0到1400star,从阮一峰周刊到尤雨溪推荐,小透明开源项目的2021年总结
  17. 愤怒大叔-喝酒聚会游戏
  18. python爬京东优惠券_京东抽奖爬虫LiteVersion
  19. 下载ZIP压缩包(压缩多个文件)
  20. idea java新建项目详细步骤

热门文章

  1. 2019/4/18,第一次团队任务
  2. vmware15安装macOS10.14.4 Mojave(黑苹果)
  3. 计算机连接无线网络的步骤,电脑如何连接无线网络wifi笔记本(教你一步步的连接步骤)...
  4. zookeeper的zab协议工作原理
  5. Solaris有那些主要版本?
  6. solaris truss使用
  7. 人体姿态估计——MSPN
  8. kodi android 卡顿,无线用KODI看4K电影卡顿的设置方法。
  9. Joomla安装图文教程
  10. 【附源码】计算机毕业设计SSM网上开发商售楼及管理信息系统