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的特征值为非负数;

证明:

,则,即

.同理可得AAT的特征值也全为非负数。

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的特征值,所以有#{AAT非零特征值} = r,同理有,#{ATA非零特征值} = r.

是ATA的非零特征值,即,使得,则有

所以也是AAT的非零特征值,反之亦然。故AAT和ATA具有相同的非零特征值。

  因此,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的特征值为,0

所以A的奇异值为.

步骤二:求出AAH和AHA非零特征值对应的次酉矩阵U1和V1

AAH特征值为4的单位特征向量为

AAH特征值为1的单位特征向量为

所以AAH非零特征值对应的次酉矩阵U1

因此,AHA非零特征值对应的次酉矩阵V1

所以

3.应用

  奇异值分解(SVD)的应用有特征降维(feature reduction)、图像压缩以及潜在语义分析(latent semantic indexing,LSI)等。就图像压缩来说,例如一张的图像,需要的矩阵来存储它。而利用奇异值分解,则只需存储矩阵的奇异值,奇异向量,数目为,而不是。通常,所以,即存储该图像所需的存储量减小了。比值称为图像的压缩比,其倒数称为数据压缩率。如果矩阵的奇异值从一个数开始值远小于前面的奇异值,则可以删去,这样在保证图像不失真的前提下,进一步减小了存储量。

SVD总结的更多相关文章

  1. 奇异值分解(SVD)原理与在降维中的应用

    奇异值分解(Singular Value Decomposition,以下简称SVD)是在机器学习领域广泛应用的算法,它不光可以用于降维算法中的特征分解,还可以用于推荐系统,以及自然语言处理等领域.是 ...

  2. SVD奇异值分解的基本原理和运用

    SVD奇异值分解: SVD是一种可靠的正交矩阵分解法.可以把A矩阵分解成U,∑,VT三个矩阵相乘的形式.(Svd(A)=[U*∑*VT],A不必是方阵,U,VT必定是正交阵,S是对角阵<以奇异值 ...

  3. 奇异值分解 SVD

    一基本知识 A是一个m*n的矩阵,那么A的SVD分解为\(A_{mn} = U_{mm}\Sigma _{mn}V^T_{nn}\),其中\(U^TU = I\),\(V^TV = I\),UV的列向 ...

  4. SVD的几何意义,以及在去噪,推荐系统中的应用

    很多文章说到奇异值分解的时候总是大概罗列下它的功能,并没有对功能及物理意义进行过多的阐述,现在我来对奇异值进行整理一下. 一 奇异值分解 对任意的矩阵A∈Fmn,rank(A)=r(矩阵的秩),总可以 ...

  5. Matrix Factorization SVD 矩阵分解

    Today we have learned the Matrix Factorization, and I want to record my study notes. Some kownledge ...

  6. PCA本质和SVD

    一.一些概念 线性相关:其中一个向量可以由其他向量线性表出. 线性无关:其中一个向量不可以由其他向量线性表出,或者另一种说法是找不到一个X不等于0,能够使得AX=0.如果对于一个矩阵A来说它的列是线性 ...

  7. 协同过滤和简单SVD优化

    协同过滤(collaborative filtering) 推荐系统: 百度百科的定义是:它是利用电子商务网站向客户提供商品信息和建议,帮助用户决定应该购买什么产品,模拟销售人员帮助客户完成购买过程主 ...

  8. 奇异值分解(SVD)和简单图像压缩

    SVD(Singular Value Decomposition,奇异值分解) 算法优缺点: 优点:简化数据,去除噪声,提高算法结果 缺点:数据的转换可能难于理解 适用数据类型:数值型数据 算法思想: ...

  9. 数值分析之奇异值分解(SVD)篇

    在很多线性代数问题中,如果我们首先思考若做SVD,情况将会怎样,那么问题可能会得到更好的理解[1].                                       --Lloyd N. ...

  10. paper 128:奇异值分解(SVD) --- 线性变换几何意义[转]

    PS:一直以来对SVD分解似懂非懂,此文为译文,原文以细致的分析+大量的可视化图形演示了SVD的几何意义.能在有限的篇幅把这个问题讲解的如此清晰,实属不易.原文举了一个简单的图像处理问题,简单形象,真 ...

随机推荐

  1. SQL Server数据类型总结

    1.char char [(n)]存储固定长度的非Unicode字符串数据.n定义字符串长度,并且必须是1到8,000之间的值.存储大小为n个字节. 2.varchar varchar [(n | m ...

  2. ASP.net 居中

    <%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs& ...

  3. HBase – 存储文件HFile结构解析

    本文由  网易云发布. 作者:范欣欣 本篇文章仅限内部分享,如需转载,请联系网易获取授权. HFile是HBase存储数据的文件组织形式,参考BigTable的SSTable和Hadoop的TFile ...

  4. Verify the Developer App certificate for your account is trusted on your device.

    1.报错内容 Could not launch "CH5203" Verify the Developer App certificate for your account is ...

  5. 常见的vue面试题

    001.v-show与v-if的区别v-show:操作的是元素的display属性 v-if:操作的是元素的创建和插入相比较而言v-show的性能要高 002.methods.computed.wat ...

  6. java实际项目中interface和abstract interface 区别

    参考:https://zhidao.baidu.com/question/424485344260391052.html 这2种有什么区别,根据实际项目经验 帮我解答下 谢谢啊~~~~~~~~~问题补 ...

  7. 使用wblockCloneObjects从后台读取dwg文件复制实体到当前数据库

    AcDbDatabase *pNewDb=new AcDbDatabase(Adesk::kFalse); if (pNewDb == NULL) { return; } Acad::ErrorSta ...

  8. 《快学Scala》第四章 映射与元组

  9. Linux下安装pip(遇到了python2.6升级为python2.7道路上的坑,原因已经找到,只差临门一脚了,以后补上)

    1.先说一下什么是pippip 是“A tool for installing and managing Python packages.”,也就是说pip是python的软件安装工具2.下面介绍怎么 ...

  10. jquery源码解析:attr,prop,attrHooks,propHooks详解

    我们先来看一下jQuery中有多少个方法是用来操作元素属性的. 首先,看一下实例方法: 然后,看下静态方法(工具方法): 静态方法是内部使用的,我们外面使用的很少,实例方法才是对外的. 接下来,我们来 ...