SVD分解
网上大多的SVD分解流程会是这种,写出这种流程的博客、知乎也好,基本上应该都是东抄抄西抄抄,未在实际中使用或者在实际使用中发现问题也没解决?

网上常见的分解流程:
A=UΣVTA=U\Sigma V^TA=UΣVT

  • 1、计算AT∗AA^T*AAT∗A和A∗ATA*A^TA∗AT的值;
  • 2、分别AT∗AA^T*AAT∗A和A∗ATA*A^TA∗AT特征向量及其特征值;
  • 3、A∗ATA*A^TA∗AT 的特征向量组成 U;而 AT∗AA^T*AAT∗A 的特征向量组成 V;
  • 4、A∗ATA*A^TA∗AT和AT∗AA^T*AAT∗A特征根是相等的,对非零特征值求平方根,对应上述特征向量的位置,填入 Σ 的对角元。

上述问题:
例如下面的矩阵A=[44−33]\begin{bmatrix} 4&4\\ -3&3\\ \end{bmatrix}[4−3​43​]对齐进行SVD分解

  • AT∗AA^T*AAT∗A =[4−343]∗[44−33]=[257725]\begin{bmatrix} 4&-3\\4&3\\\end{bmatrix} * \begin{bmatrix} 4&4\\-3&3\\\end{bmatrix}=\begin{bmatrix} 25&7\\7&25\\\end{bmatrix}[44​−33​]∗[4−3​43​]=[257​725​]求得特征值λ1=32,λ2=18\lambda_1=32,\lambda_2=18λ1​=32,λ2​=18对应特征向量[11]\begin{bmatrix} 1\\1\\\end{bmatrix}[11​]和[1−1]\begin{bmatrix} 1\\-1\\\end{bmatrix}[1−1​]
  • 对于A∗ATA*A^TA∗AT =[44−33]∗[4−343]∗=[320018]\begin{bmatrix} 4&4\\-3&3\\\end{bmatrix}*\begin{bmatrix} 4&-3\\4&3\\\end{bmatrix} *=\begin{bmatrix} 32&0\\0&18\\\end{bmatrix}[4−3​43​]∗[44​−33​]∗=[320​018​]求得特征值λ1=32,λ2=18\lambda_1=32,\lambda_2=18λ1​=32,λ2​=18对应特征向量[10]\begin{bmatrix} 1\\0\\\end{bmatrix}[10​]和[01]\begin{bmatrix} 0\\1\\\end{bmatrix}[01​]
  • 则Σ=[320018],U=[1001],V=[1/21/21/2−1/2](备注:V矩阵对V特征向量进行了正则化)\Sigma=\begin{bmatrix} \sqrt{32}&0\\0&\sqrt{18}\\\end{bmatrix},U=\begin{bmatrix} 1&0\\0&1\\\end{bmatrix},V=\begin{bmatrix} 1/\sqrt{2}&1/\sqrt{2}\\1/\sqrt{2}&-1/\sqrt{2}\\\end{bmatrix}(备注:V矩阵对V特征向量进行了正则化)Σ=[32​0​018​​],U=[10​01​],V=[1/2​1/2​​1/2​−1/2​​](备注:V矩阵对V特征向量进行了正则化),
  • 验证 UΣVT等于A吗U\Sigma V^T等于A吗UΣVT等于A吗
  • UΣVT=[1001][320018][1/21/21/2−1/2]=[443−3]≠AU\Sigma V^T =\begin{bmatrix} 1&0\\0&1\\\end{bmatrix}\begin{bmatrix} \sqrt{32}&0\\0&\sqrt{18}\\\end{bmatrix}\begin{bmatrix} 1/\sqrt{2}&1/\sqrt{2}\\1/\sqrt{2}&-1/\sqrt{2}\\\end{bmatrix} =\begin{bmatrix} 4&4\\3&-3\\\end{bmatrix}\neq AUΣVT=[10​01​][32​0​018​​][1/2​1/2​​1/2​−1/2​​]=[43​4−3​]=A

问题原因:
经历上述1、2、3步解出来的U、V能保证Σ∗ΣT\Sigma*\Sigma^TΣ∗ΣT内元素的平方和AT∗AA^T*AAT∗A 、A∗ATA*A^TA∗AT的特征值的关系,并不保证ΣT\Sigma^TΣT的元素一定为正值,为了满足奇异值定义,我们需要选取奇异值为特征的正平方根这是我们的目的。

正确的做法

  • 1、计算AT∗AA^T*AAT∗A;
  • 2、计算AT∗AA^T*AAT∗A特征向量及其特征值;
  • 3、选择AT∗AA^T*AAT∗A 的特征向量组成 V;
  • 4、A∗ATA*A^TA∗AT和AT∗AA^T*AAT∗A特征根是相等的,对非零特征值求平方根,对应上述特征向量的位置,填入 Σ 的对角元。
  • 5、假如初始组成了V则根据AV=UΣAV=U\SigmaAV=UΣ去求解得到满足要求的U

SVD分解正确分解流程相关推荐

  1. 解方程AX=b与矩阵分解:奇异值分解(SVD分解) 特征值分解 QR分解 三角分解 LLT分解

    文章目录 1. 前言 2. LU三角分解 3. Cholesky分解 - LDLT分解 4. Cholesky分解 - LLT分解 5. QR分解 6. 奇异值分解 7. 特征值分解 1. 前言 本博 ...

  2. 视觉SLAM中的数学——解方程AX=b与矩阵分解:奇异值分解(SVD分解) 特征值分解 QR分解 三角分解 LLT分解

    前言 本博客主要介绍在SLAM问题中常常出现的一些线性代数相关的知识,重点是如何采用矩阵分解的方法,求解线性方程组AX=B.主要参考了<计算机视觉--算法与应用>附录A以及Eigen库的方 ...

  3. 【矩阵论】2. 矩阵分解——正规分解——正规阵

    矩阵论 1. 准备知识--复数域上的矩阵与换位公式) 1. 准备知识--复数域上的内积域正交阵 1. 准备知识--相似对角化与合同&正定阵 2. 矩阵分解-- SVD准备知识--奇异值 2. ...

  4. 【矩阵论】2. 矩阵分解——QR分解

    矩阵论 1. 准备知识--复数域上矩阵,Hermite变换) 1.准备知识--复数域上的内积域正交阵 1.准备知识--Hermite阵,二次型,矩阵合同,正定阵,幂0阵,幂等阵,矩阵的秩 2. 矩阵分 ...

  5. 5.9 QR分解--Gram-Schmidt 分解

    5.9 QR分解–Gram-Schmidt 分解 最小二乘法需要解方程 ATAx=ATbA^TA\mathbf{x} = A^T\mathbf{b}ATAx=ATb ,需要计算矩阵乘法 ATAA^TA ...

  6. 矩阵的分解_QR分解

    文章目录 QR分解介绍 施密特正交化 QR分解步骤 QR分解程序实现 QR分解介绍 前提:必须是列满秩的矩阵! 若n阶非奇异矩阵AAAn∗nn*nn∗n可以分解成正交矩阵QQQn∗nn*nn∗n和非奇 ...

  7. 『矩阵论笔记』详细介绍矩阵的三角分解(LR分解)+平方根分解(Cholesky分解)

    详细介绍矩阵的三角分解(LR分解)+平方根分解(Cholesky分解)! 文章目录 一. 三角分解(LR分解) 1.1. 方阵的两个重要分解 1.2. 上(下)三角阵的性质 1.3. 三角分解的概念 ...

  8. 文本分类之降维技术之特征抽取之SVD矩阵的分解的原理的介绍

    http://www.cnblogs.com/LeftNotEasy/archive/2011/01/19/svd-and-applications.html 一.奇异值与特征值基础知识: 特征值分解 ...

  9. SVD(奇异值矩阵分解) 转载(+师兄ppt)

    http://www.cnblogs.com/LeftNotEasy/archive/2011/01/19/svd-and-applications.html 一.奇异值与特征值基础知识: 特征值分解 ...

最新文章

  1. 以太坊又一次大拥堵何去何从?深度对话美图以太坊DPoS算法实现团队
  2. JAVA线程本地变量ThreadLocal和私有变量的区别
  3. 如何评估自己对外界认知是否正确?
  4. 程序员自身价值值这么多钱么?
  5. cp210x驱动怎么安装_电脑声卡驱动怎么安装,教你三步搞定声卡驱动
  6. 华为云提供多场景本地数据上云方案,数据上云不再愁
  7. 年轻人的钱包,被十一假期榨干了
  8. 数据挖掘:数据清洗——异常值处理
  9. Kaggle学习笔记--XGBoost
  10. spring boot企业合同管理系统 毕业设计源码161456
  11. arcgis重心迁移分析_ArcGIS支持下三峡库区适度人口重心迁移研究
  12. leetcode *207. 课程表(拓补排序)(2020.8.4)
  13. MSN天气不显示数据、打不开、微软商店打不开报错0x80131500
  14. css动漫效果库,10 个最佳 CSS 动画库
  15. 如何在 Kubernetes 集群中集成 Kata
  16. 单独使用bable插件
  17. mysql字段最大长度_MySQL VARCHAR字段最大长度到底是多少
  18. keras中的Convolution1D
  19. 压缩/解压(ICSharpCode.SharpZipLib 类库)
  20. 前端自动生成目录结构

热门文章

  1. 计算机毕业设计 SSM+Vue停车位管理系统 临时停车位管理系统 车位停车管理系统 停车位租用管理系统Java Vue MySQL数据库 远程调试 代码讲解
  2. unity3d+android+实时阴影,Unity3D手游开发-移动平台实时阴影方案
  3. Unity有限自动机学习一
  4. 大数据基础与应用课程总结
  5. Oracle数据误删恢复
  6. win10右键新建菜单响应缓慢
  7. anaconda3下装pytorch
  8. 【图文解析 】Linux命令终端,又看会了,浮夸
  9. 2021-03-02低轨卫星定轨流程整理学习02
  10. 让办公更高效!推荐10个不容错过的神级办公软件