SVD总结
1.概述
我们先从实数域R开始说起,再延伸到复数域C上去,先列出一个表格,把实数域以及复数域中常见的矩阵及其性质概括如下:
表1 常见矩阵及其性质

我们知道实对称矩阵正交相似于对角阵,从而将一个方阵对角化,那么一个
的矩阵能否对角化为对角阵呢,答案是肯定的,这也是奇异值分解(singular value decomposition,SVD)的意义所在。
设A是一个
矩阵,则存在m阶正交矩阵U和n阶正交矩阵V,满足

其中
.习惯上,设
,称
为奇异值(singular value),称U和V的前r列向量为奇异向量(singular vector),这个分解为奇异值分解。
那现在就有疑问了,奇异值怎么求呢,m阶正交矩阵U和n阶正交矩阵V又怎么求呢,为了回答上述问题,我们将SVD写成向量形式,从而对SVD有初步的了解。令
,
,因为V是正交矩阵,所以有

写成向量的形式有

即

对1.1式转置得,

同理可得,

对1.4式两端左乘AT得,

将1.6式代入1.7式中,

同理可得,

故vi是实对称矩阵ATA属于
的特征向量,ui是实对称矩阵AAT属于
的特征向量。也就是说,奇异值就是实对称矩阵AAT(或者ATA)非零特征值的模长(即非零特征值开根号),而正交矩阵U(V)就是AAT(ATA)特征值所对应的特征向量。当然并不是随意地取m个特征向量组成U,随意地取n个特征向量组成V就可以构成A奇异值分解的正交矩阵的,U和V之间是配对的,有固定的关系,用表达式表示即为

这个式子的推导在后面会介绍,现在继续探讨实对称矩阵AAT和 ATA特征值
的性质,有如下两个性质:
1)AAT和 ATA的特征值为非负数;
|
证明: 设
故 |
2)AAT和ATA的非零特征值集合相同;
|
证明: 假设A的秩为r,因为r(AAT) = r(AT),r(ATA) = r(A),且r(A) = r(AT),故 r(AAT) = r(ATA) = r(A) = r 因为AAT是实对称矩阵,所以 设
所以 |
因此,AAT和 ATA的特征值为非负数,且AAT和 ATA的非零特征值集合相同,即求A的奇异值时,只需求出AAT和ATA其中一个矩阵的特征值即可。
接下来,推导正交矩阵U和正交矩阵V之间的配对关系,设为
是n阶对称方阵ATA的单位正交特征向量,

注意到
,故
,即
.令
,则

且有

故
是AAT的单位正交特征向量。也就是说,当
是ATA的单位正交特征向量时,
是AAT的单位正交特征向量,且
.
至此,矩阵A的奇异值分解就可以求出来了,首先求出AAT(ATA)的特征值,其中,非零特征值就是矩阵A的奇异值;接着求出AAT(ATA)特征值所对应的特征向量(包括零特征值对应的特征向量)作为正交矩阵U(V);最后根据配对关系求出另一个正交矩阵V(U)非零特征值所对应的特征向量,而正交矩阵V(U)的零特征值对应的特征向量则可以代入特征方程求出(或者其他方法),从而,得到任意矩阵A的奇异值分解。
这是实数域R的情况,复数域C中的奇异值分解大同小异。
设
,
是A的r个奇异值,则存在m阶酉矩阵U和n阶酉矩阵V,满足

则上面的分解称为奇异值分解(复数域中)。
求任意一个复矩阵A的奇异值分解跟实矩阵A的奇异值分解步骤是一样的,就是非零特征值对应的次酉矩阵U1、V1的配对关系变为

其中,
,这是在求一个复矩阵A的奇异值分解时应该注意的。
2.例子
求矩阵

的奇异值分解表达式。
|
解: 步骤一:求出AAH和AHA的非零特征值(A的奇异值)
AAH的特征多项式为
AAH的特征值为 所以A的奇异值为 步骤二:求出AAH和AHA非零特征值对应的次酉矩阵U1和V1 AAH特征值为4的单位特征向量为
AAH特征值为1的单位特征向量为
所以AAH非零特征值对应的次酉矩阵U1为
因此,AHA非零特征值对应的次酉矩阵V1为
所以
|
3.应用
奇异值分解(SVD)的应用有特征降维(feature reduction)、图像压缩以及潜在语义分析(latent semantic indexing,LSI)等。就图像压缩来说,例如一张
的图像,需要
的矩阵来存储它。而利用奇异值分解,则只需存储矩阵的奇异值
,奇异向量
和
,数目为
,而不是
。通常
,所以
,即存储该图像所需的存储量减小了。比值
称为图像的压缩比,其倒数称为数据压缩率。如果矩阵的奇异值从一个数开始值远小于前面的奇异值,则可以删去,这样在保证图像不失真的前提下,进一步减小了存储量。
SVD总结的更多相关文章
- 奇异值分解(SVD)原理与在降维中的应用
奇异值分解(Singular Value Decomposition,以下简称SVD)是在机器学习领域广泛应用的算法,它不光可以用于降维算法中的特征分解,还可以用于推荐系统,以及自然语言处理等领域.是 ...
- SVD奇异值分解的基本原理和运用
SVD奇异值分解: SVD是一种可靠的正交矩阵分解法.可以把A矩阵分解成U,∑,VT三个矩阵相乘的形式.(Svd(A)=[U*∑*VT],A不必是方阵,U,VT必定是正交阵,S是对角阵<以奇异值 ...
- 奇异值分解 SVD
一基本知识 A是一个m*n的矩阵,那么A的SVD分解为\(A_{mn} = U_{mm}\Sigma _{mn}V^T_{nn}\),其中\(U^TU = I\),\(V^TV = I\),UV的列向 ...
- SVD的几何意义,以及在去噪,推荐系统中的应用
很多文章说到奇异值分解的时候总是大概罗列下它的功能,并没有对功能及物理意义进行过多的阐述,现在我来对奇异值进行整理一下. 一 奇异值分解 对任意的矩阵A∈Fmn,rank(A)=r(矩阵的秩),总可以 ...
- Matrix Factorization SVD 矩阵分解
Today we have learned the Matrix Factorization, and I want to record my study notes. Some kownledge ...
- PCA本质和SVD
一.一些概念 线性相关:其中一个向量可以由其他向量线性表出. 线性无关:其中一个向量不可以由其他向量线性表出,或者另一种说法是找不到一个X不等于0,能够使得AX=0.如果对于一个矩阵A来说它的列是线性 ...
- 协同过滤和简单SVD优化
协同过滤(collaborative filtering) 推荐系统: 百度百科的定义是:它是利用电子商务网站向客户提供商品信息和建议,帮助用户决定应该购买什么产品,模拟销售人员帮助客户完成购买过程主 ...
- 奇异值分解(SVD)和简单图像压缩
SVD(Singular Value Decomposition,奇异值分解) 算法优缺点: 优点:简化数据,去除噪声,提高算法结果 缺点:数据的转换可能难于理解 适用数据类型:数值型数据 算法思想: ...
- 数值分析之奇异值分解(SVD)篇
在很多线性代数问题中,如果我们首先思考若做SVD,情况将会怎样,那么问题可能会得到更好的理解[1]. --Lloyd N. ...
- paper 128:奇异值分解(SVD) --- 线性变换几何意义[转]
PS:一直以来对SVD分解似懂非懂,此文为译文,原文以细致的分析+大量的可视化图形演示了SVD的几何意义.能在有限的篇幅把这个问题讲解的如此清晰,实属不易.原文举了一个简单的图像处理问题,简单形象,真 ...
随机推荐
- c#设计模式之策略者模式(Strategy Pattern)
场景出发 假设存在如下游戏场景: 1:角色可以装备木剑,铁剑,魔剑3种装备,分别对怪物造成20HP,50HP,100HP伤害(未佩戴装备则无法攻击); 2角色可以向怪物攻击,一次攻击后损失角色所佩戴装 ...
- bash shell & 环境变量
root是没有~/.bashrc的,只. /etc/profile即可,/etc/profile和~/.bashrc的作用类似,只是作用域不同,都是写死的export,也有动态的脚本去设置命令和环境变 ...
- C语言—第二次作业
1.本章学习内容 1.1思维导图 1.2本章学习体会即代码量学习体会 1.2.1学习体会 在本章中对循环的内容进行了加深训练,学习了一种解决问题的方法循环嵌套,也学到了伪代码的运用,在描述算法是运用伪 ...
- PTA——删除重复字符
PTA 7-60 删除重复字符 #include<stdio.h> #include<string.h> #define N 85 int main() { ,flag; ch ...
- oracle创建表空间、用户、权限
原链接:https://www.cnblogs.com/wxm-bk/p/6510654.html oracle 创建临时表空间/表空间,用户及授权 1:创建临时表空间 create tempor ...
- json 模块的基本使用学习
内容大纲 1: 为什么要学习json模块 >1:因为网络之间的通信,还有不同语言之间的相互内容沟通,需要用到json 模式进行沟通 >2:写入部分文件用json文件保存, 2:json的序 ...
- mybatis的执行流程
1.SqlSessionFactoryBuilder与SqlSessionFactory 我们一般在使用mybatis是都会通过new SqlSessionFactoryBuilder.build(. ...
- docker微服务部署之:三,搭建Zuul微服务项目
docker微服务部署之:二.搭建文章微服务项目 一.新增demo_eureka模块,并编写代码 右键demo_parent->new->Module->Maven,选择Module ...
- [java实现]常见算法之字符串操作
一.字符串反转 把一个句子中的打次进行反转,比如“how are you” ,变为 “you are how” // 字符串反转 public class StringTest { // 字符反转的方 ...
- ubuntu apt update时W: GPG error http://ppa.launchpad.net lucid Release没有公钥无法验证NO_PUBKEY签名问题解决
在安装更新时,即在运行命令行sudo apt-get update 或者运行更新管理器的时候,出现W: GPG 错误: W: GPG error: http://ppa.launchpad.net/o ...
,则
,即
.同理可得AAT的特征值也全为非负数。
,其中
是AAT的特征值,所以有#{AAT非零特征值} = r,同理有,#{ATA非零特征值} = r.
是ATA的非零特征值,即
,使得
,则有
也是AAT的非零特征值,反之亦然。故AAT和ATA具有相同的非零特征值。
,
,
,0
,
.



