奇异值分解(SVD)
2017-11-12 21:52
225 查看
奇异值分解在矩阵理论中非常重要,也有很多实际运用,比如推荐系统,利用满秩分解还能节约存储空间。
在介绍原理之前,先说一下一些概念:
1 酉(you,三声,我都不知道这个字怎么读,哈哈)矩阵。
如果n阶复矩阵A满足:
则称之为酉矩阵,是不是和正交矩阵的定义很相似,AH指的是A的共轭对称,如果A是实矩阵,则就是转置,其实我们基本遇到的就是实矩阵。
2 定义:设AϵCm∗n,如果存在非实数σ和非零向量uϵCn,vϵCm使得Au=σv,AHv=σu,则称σ为A的奇异值,u和v分别对应于奇异值σ的有奇异向量和左奇异向量。
由上式可得:AHAu=σAHv=σ2u,AAHv=σAu=σ2v.
我们可以看出特征值与奇异值的关系是:矩阵与矩阵共轭转置的乘积构成的矩阵的特征值的开方就是原矩阵的奇异值。
有如下定理(内容来自教材书,附有证明)
接下来,我想实现以下SVD算法。
给出一个特殊的例子(例子也是书上的)
需要注意的是V1与V2是正交的,所以求解V1x=0就可以得出V2,这在证明里可以体现出来。
如有错误,欢迎指出。
在介绍原理之前,先说一下一些概念:
1 酉(you,三声,我都不知道这个字怎么读,哈哈)矩阵。
如果n阶复矩阵A满足:
则称之为酉矩阵,是不是和正交矩阵的定义很相似,AH指的是A的共轭对称,如果A是实矩阵,则就是转置,其实我们基本遇到的就是实矩阵。
2 定义:设AϵCm∗n,如果存在非实数σ和非零向量uϵCn,vϵCm使得Au=σv,AHv=σu,则称σ为A的奇异值,u和v分别对应于奇异值σ的有奇异向量和左奇异向量。
由上式可得:AHAu=σAHv=σ2u,AAHv=σAu=σ2v.
我们可以看出特征值与奇异值的关系是:矩阵与矩阵共轭转置的乘积构成的矩阵的特征值的开方就是原矩阵的奇异值。
有如下定理(内容来自教材书,附有证明)
接下来,我想实现以下SVD算法。
给出一个特殊的例子(例子也是书上的)
A=[0 1;-1 0;0 2;1 0]; A_t=A'*A%特殊之处在于A_t就是一个对角矩阵,可以直接知道奇异值和特征向量,从而知道U A_t1=diag((sqrt(diag(A_t))).^(-1)) U=eye(size(A,2)) V1=A*U*A_t1%由U得到V1 V2=null(V1','r')%V1与V2是正交的 V_2=sqrt(sum(V2.^2)) V_2_1=repmat(V_2,size(V2,1),1) V_2_2=vpa(V2./V_2_1,4) V=vpa(cat(2,V1,V_2_2),4) m=size(A,1)-size(A_t,1) n=size(A_t,2) A=vpa(V*cat(1,sqrt(A_t),zeros(m,n))*U',4)%矩阵恢复
需要注意的是V1与V2是正交的,所以求解V1x=0就可以得出V2,这在证明里可以体现出来。
如有错误,欢迎指出。
相关文章推荐
- SVD(奇异值分解)及求解最小二乘问题
- 机器学习实战学习笔记4——奇异值分解(SVD)
- 机器学习算法(降维)—SVD奇异值分解
- 奇异值分解(SVD) --- 线性变换几何意义
- 奇异值分解(SVD)原理详解及推导
- 机器学习实战精读--------奇异值分解(SVD)
- 奇异值分解SVD
- 奇异值分解(SVD)
- 奇异值分解(SVD) --- 几何意义
- 奇异值分解(SVD) --- 几何意义
- 奇异值分解(SVD)
- SVD奇异值分解
- 奇异值分解(SVD)详解
- 奇异值分解(SVD)原理详解及推导-矩阵相关
- SVD奇异值分解分析
- 数学之线性代数——奇异值分解SVD
- 奇异值分解(SVD)原理详解及推导
- 奇异值分解(SVD) --- 几何意义
- 奇异值分解(SVD) --- 几何意义
- 一分钟了解"matlab进行奇异值分解SVD"