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. 63. 不同路径 II leetcode JAVA

    题目 一个机器人位于一个 m x n 网格的左上角 (起始点在下图中标记为“Start” ). 机器人每次只能向下或者向右移动一步.机器人试图达到网格的右下角(在下图中标记为“Finish”). 现在 ...

  2. Web Api 端点设计 与 Oauth

    最近一直看这方面的东西,总结如下: 在后续会进行实例demo演示,本篇进行理论详解. 下篇相关博客: <Web Api 内部数据思考 和 利用http缓存优化 Api> <API接口 ...

  3. java中数组的插入

    package com.hxzy.demo; import java.util.Arrays;import java.util.Scanner; public class Demo1 { public ...

  4. 从一个bug谈谈psqlodbc游标的一点认识

    本文源于最近修正的一个关于psqlodbc的bug,该bug在近期的psqlodbc的git上也有人提交了修正. 关于该bug的修正代码可以看这里: https://git.postgresql.or ...

  5. bzoj4842: [Neerc2016]Delight for a Cat

    bzoj4842 这是一道网络流的题(大家都看出来了吧) 首先我们简化一下题目,选出最关键的部分(就是知道什么和要求什么,还有条件) 我们在这里把睡觉设为0,至少有t0时间在睡觉,把打隔膜设为1,至少 ...

  6. POJ 2192

    #include <iostream> #include <string> #define MAXN 500 using namespace std; bool dp[MAXN ...

  7. 架构师养成记--21.netty编码解码

    背景 作为网络传输框架,免不了哟啊传输对象,对象在传输之前就要序列化,这个序列化的过程就是编码过程.接收到编码后的数据就需要解码,还原传输的数据. 代码 工厂类 import io.netty.han ...

  8. C#-WebForm-AJAX阿贾克斯(一)基础知识

    AJAX 即“ Asynchronous Javascript And XML ”(异步JavaScript和XML),是指一种创建交互式网页应用的网页开发技术. AJAX = 异步 JavaScri ...

  9. 使用selenium的WebDriver和ChromeDriver实现UI自动化

    下载chromedriver chromedriver与chrome的对应关系表:http://blog.csdn.net/huilan_same/article/details/51896672 下 ...

  10. (原创推荐文章)kerberos服务器端与客户端

    #环境 两台装centos7的虚拟机即可. kerberos服务器端与客户端各一台 (本文档推荐使用Typora软件观看) # 1.kerberos服务器端配置 ## 1.1安装配置Kerberos ...