SVD分解正确分解流程
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−343]对齐进行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−343]=[257725]求得特征值λ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−343]∗[44−33]∗=[320018]求得特征值λ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特征向量进行了正则化)Σ=[320018],U=[1001],V=[1/21/21/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=[1001][320018][1/21/21/2−1/2]=[434−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分解正确分解流程相关推荐
- 解方程AX=b与矩阵分解:奇异值分解(SVD分解) 特征值分解 QR分解 三角分解 LLT分解
文章目录 1. 前言 2. LU三角分解 3. Cholesky分解 - LDLT分解 4. Cholesky分解 - LLT分解 5. QR分解 6. 奇异值分解 7. 特征值分解 1. 前言 本博 ...
- 视觉SLAM中的数学——解方程AX=b与矩阵分解:奇异值分解(SVD分解) 特征值分解 QR分解 三角分解 LLT分解
前言 本博客主要介绍在SLAM问题中常常出现的一些线性代数相关的知识,重点是如何采用矩阵分解的方法,求解线性方程组AX=B.主要参考了<计算机视觉--算法与应用>附录A以及Eigen库的方 ...
- 【矩阵论】2. 矩阵分解——正规分解——正规阵
矩阵论 1. 准备知识--复数域上的矩阵与换位公式) 1. 准备知识--复数域上的内积域正交阵 1. 准备知识--相似对角化与合同&正定阵 2. 矩阵分解-- SVD准备知识--奇异值 2. ...
- 【矩阵论】2. 矩阵分解——QR分解
矩阵论 1. 准备知识--复数域上矩阵,Hermite变换) 1.准备知识--复数域上的内积域正交阵 1.准备知识--Hermite阵,二次型,矩阵合同,正定阵,幂0阵,幂等阵,矩阵的秩 2. 矩阵分 ...
- 5.9 QR分解--Gram-Schmidt 分解
5.9 QR分解–Gram-Schmidt 分解 最小二乘法需要解方程 ATAx=ATbA^TA\mathbf{x} = A^T\mathbf{b}ATAx=ATb ,需要计算矩阵乘法 ATAA^TA ...
- 矩阵的分解_QR分解
文章目录 QR分解介绍 施密特正交化 QR分解步骤 QR分解程序实现 QR分解介绍 前提:必须是列满秩的矩阵! 若n阶非奇异矩阵AAAn∗nn*nn∗n可以分解成正交矩阵QQQn∗nn*nn∗n和非奇 ...
- 『矩阵论笔记』详细介绍矩阵的三角分解(LR分解)+平方根分解(Cholesky分解)
详细介绍矩阵的三角分解(LR分解)+平方根分解(Cholesky分解)! 文章目录 一. 三角分解(LR分解) 1.1. 方阵的两个重要分解 1.2. 上(下)三角阵的性质 1.3. 三角分解的概念 ...
- 文本分类之降维技术之特征抽取之SVD矩阵的分解的原理的介绍
http://www.cnblogs.com/LeftNotEasy/archive/2011/01/19/svd-and-applications.html 一.奇异值与特征值基础知识: 特征值分解 ...
- SVD(奇异值矩阵分解) 转载(+师兄ppt)
http://www.cnblogs.com/LeftNotEasy/archive/2011/01/19/svd-and-applications.html 一.奇异值与特征值基础知识: 特征值分解 ...
最新文章
- 以太坊又一次大拥堵何去何从?深度对话美图以太坊DPoS算法实现团队
- JAVA线程本地变量ThreadLocal和私有变量的区别
- 如何评估自己对外界认知是否正确?
- 程序员自身价值值这么多钱么?
- cp210x驱动怎么安装_电脑声卡驱动怎么安装,教你三步搞定声卡驱动
- 华为云提供多场景本地数据上云方案,数据上云不再愁
- 年轻人的钱包,被十一假期榨干了
- 数据挖掘:数据清洗——异常值处理
- Kaggle学习笔记--XGBoost
- spring boot企业合同管理系统 毕业设计源码161456
- arcgis重心迁移分析_ArcGIS支持下三峡库区适度人口重心迁移研究
- leetcode *207. 课程表(拓补排序)(2020.8.4)
- MSN天气不显示数据、打不开、微软商店打不开报错0x80131500
- css动漫效果库,10 个最佳 CSS 动画库
- 如何在 Kubernetes 集群中集成 Kata
- 单独使用bable插件
- mysql字段最大长度_MySQL VARCHAR字段最大长度到底是多少
- keras中的Convolution1D
- 压缩/解压(ICSharpCode.SharpZipLib 类库)
- 前端自动生成目录结构