奇异值分解在机器学习中经常碰到,今天详细讲讲。本文章中说的"矩阵" / "向量" 都指的是实数矩阵/实数向量,我们只说实数域内的情况。

整数有质因子分解,比如12=2*2*3。分解成2*2*3后,比单单研究12这个数,我们会容易得到一些信息,比如,12这个数不能整除5;一个数 n  乘12后,会整除 2 和 3;等等。

那么矩阵呢,我们是否可以像整数的质因子分解一样进行分解?这样比单单研究这个矩阵也许就会获得很多有用的信息。答案是任何一个矩阵都可以进行奇异值分解,并且奇异值分解很有用。

本篇文章的目录如下:

目录

特征分解(Eigendecomposition)

特征向量与特征值

有n个线性独立特征向量的方阵性质,包括几何解释

什么样的矩阵有n个线性独立特征向量

奇异值分解(Singular Value Decomposition)

左奇异向量、右奇异向量、奇异值

奇异值分解的几何解释

紧奇异值分解和截断奇异值分解

奇异值分解与矩阵近似

奇异值分解的应用


我们在说奇异值分解之前,需要先说说特征值分解。

特征分解(Eigendecomposition)

特征向量与特征值

首先,特征分解只适用于方阵

我们可以定义特征向量。如果一个非0向量   满足 ,那么这个非0向量  就是  的特征向量。

一个矩阵  可能没有特征向量,也可能有特征向量。如果有特征向量,也可能有  个线性独立的特征向量,或者  个线性独立的特征向量。

有n个线性独立特征向量的方阵性质,包括几何解释

如果一个矩阵 有特征向量,并且有  个线性独立的特征向量,我们可以分析出来一些有用的信息,那可以分析出来什么信息呢?我们可以简单地推导一下:

一、代数性质

我们记这个线性独立的特征向量为,并且对应的特征值为。我们将每一个特征向量作为一列拼起来,形成特征向量矩阵 ,同理我们把相应的特征值拼成一个向量,那么我们可以得到:

由于  是 n 阶方阵,并且所有列都相互线性独立,所有的逆存在,所有可得:

如果我们将 中的每一列都化为单位向量并且和其他向量都正交,当然此时的也发生了改变,那么可以得到一个正交矩阵  ,由于正交矩阵 ,可以得到:

这个式子是我们经常见到的式子,用这个式子推导其他式子都很方便。

二、几何性质

上述都是基于公式推导理解,有没有特征值分解的几何理解呢?我们不妨先基于二维平面做一下分析。

假设 有2个线性独立的特征向量  和  (假设我们已经将这两个特征化简成了正交单位向量),以及对应的特征值  和 。我们可以分析二维平面单位圆上的点,设这个单位圆上每一个点的坐标是  ,每一个点的点向量是  ,我们都知道  且  。

如果我们给  左乘 得到  向量,该点坐标为  ,那么 

根据推导出来的式子我们得知 的点坐标为  ,  向量的两个点坐标相等,故而  。由于  ,所以得,这是个椭圆呀~,可以下结论了,一个圆上所有点左乘一个  会使得这个圆变成椭圆,并且哪个特征向量的特征值越大,原向量就越偏向哪个特征向量,与这个特征值大的特征向量之间的夹角就会变小,如下图所示:

我们将单位圆上的点推广到二维平面的所有圆上的点(也就是二维平面上的所有点),该点对应的向量左乘都会使该向量发生转变(方向和模都变),的哪个特征向量的特征值大,转变后的向量就越偏向那个特征向量,与其夹角会变小,并且转变后的向量的模大程度受的最大特征值的影响。

什么样的矩阵有n个线性独立特征向量

实对称矩阵一定有n个线性独立特征向量,但是有n个线性独立特征向量的矩阵不一定是实对称矩阵。具体的证明就不在这里说啦,想找证明的话书上找找叭~

奇异值分解(Singular Value Decomposition)

左奇异向量、右奇异向量、奇异值

只有方阵可以进行特征分解。对于一般的矩阵,可以用奇异值分解进行分解。一个一般的矩阵可以被分解成这样:

   (把各个矩阵的维度标出来的话就是 

其中 :

1、 是  的特征向量矩阵(是正交矩阵);  的列向量称为左奇异向量(left singular vector)。

2、 是  的特征向量矩阵(是正交矩阵);  的列向量称为右奇异向量(right singular vector)。

3、 是对角矩阵,中对角线上的非0值是  的非0特征值的平方根 ,同时也是的非0特征值的平方根。(中对角线上的值从大到小降序排列;对角线上非0值的个数是的秩,其<=min(m,n)  )。中非0值称为奇异值(singular value)。

至于奇异值分解基本定理的证明,可以参考李航老师的统计学习方法第二版 第15章 奇异值分解~,写的真的很明白!这里就不证明了。

奇异值分解的几何解释

实对称矩阵的特征值分解的几何解释是:对任意向量  左乘一个实对称矩阵,则 在同一个空间内会发生缩放变换。当时我们做了推导。

一般矩阵的奇异值分解我们就不仔细推导了,我们简单了解一下。先说结论,的矩阵表示从 n 维空间 到 m 维空间  的一个线性变换。

给一个向量 左乘一个任意矩阵 ,我们从后往前看,先对 左乘,做相同维度 n 上的旋转变换;再在其基础上左乘,做之前维度 n 上的缩放变换然后拔高/降低维度至 m ;再在其基础上左乘  ,做m维度上的旋转变换。

紧奇异值分解和截断奇异值分解

之前说的奇异值分解的式子又称为矩阵的完全奇异值分解,实际上为了压缩矩阵存储空间,常用的是奇异值分解的紧凑形式和截断形式。紧奇异值分解是与原始矩阵等秩的奇异值分解,截断奇异值分解是比原始矩阵低秩的奇异值分解。

1、紧奇异值分解:

若一般矩阵,其秩为 rank() = r , r <=min(m,n),那么  的紧奇异值分解就是:

注意这里是等号哦,其实就是将 原来的  中的 0 项都去掉,只保留 r  个非 0 奇异值构成的对角方阵,其  是  的前 r  列,其  是  的前 r  列。

2、截断奇异值分解:

若一般矩阵,其秩为 rank() = r , r <=min(m,n),且 0<k<r ,那么  的截断奇异值分解就是:

注意这里是约等号哦,这里的 是原来的取前 k 行前 k 列的对角方阵,其  是  的前 k  列,其  是  的前 k 列。

奇异值分解与矩阵近似

奇异值分解是一种矩阵近似的方法,这个近似是在(Frobenius norm)意义下的对矩阵的最优近似。

 矩阵 A 的 Frobenius norm :

具体的证明有点复杂,可参考 李航老师的统计学习方法第二版 第15章 奇异值分解。

奇异值分解的应用

有关奇异值分解的应用,有PCA 主成分计算、 LSA 等。

可参考:

主成分分析(PCA)(principal component analysis)

潜在语义分析(LSA)(latent semantic analysis)

呼,终于完事了,今天的奇异值分解到这里就结束啦,欢迎各位大佬留言吖~

奇异值分解(SVD)(Singular Value Decomposition)相关推荐

  1. 推荐系统学习笔记之三 LFM (Latent Factor Model) 隐因子模型 + SVD (singular value decomposition) 奇异值分解

    Low Rank Matrix Factorization低阶矩阵分解 在上一篇笔记之二里面说到我们有五部电影,以及四位用户,每个用户对电影的评分如下,?表示未评分. Movies\User User ...

  2. SVD奇异值分解(Singular Value Decomposition)

    奇异值分解(Singular Value Decomposition)是线性代数中一种重要的矩阵分解,是矩阵分析中正规矩阵酉对角化的推广.在信号处理.统计学等领域有重要应用. 假设M是一个m×n阶矩阵 ...

  3. 特征值分解(Eigen Value Decomposition,EVD)、奇异值分解(Singular Value Decomposition,SVD)原理、公式推导及应用

    1 正交矩阵&正交变换 正交变换是保持图形形状和大小不变的几何变换,包含旋转.平移.轴对称及这些变换的复合形式,正交变换可以保持向量的长度和向量之间的角度不变.特别的,标准正交基经正交变换后仍 ...

  4. 特征值与特征向量、特征方程、特征多项式、矩阵相似、相似变换、矩阵对角化、奇异值分解(Singular Value Decomposition)手算加MATLAB

    特征值(Eigenvalue)与特征向量(Eigenvector)   定义:若AAA为n×nn\times nn×n的矩阵,xxx为非零向量,若存在数λ\lambdaλ使得Ax=λxAx=\lamb ...

  5. 奇异值分解(Singular Values Decomposition,SVD)

    奇异值分解 1.奇异值分解 1.1 变换(Transformations) 1.2 线性变换(Linear Transformations) 1.3 降维(Dimensionality Reducti ...

  6. 奇异值分解(Singular Value Decomposition,SVD)

    文章目录 1. 奇异值分解的定义与性质 1.1 定义 1.2 两种形式 1.2.1 紧奇异值分解 1.2.2 截断奇异值分解 1.3 几何解释 1.4 主要性质 2. 奇异值分解与矩阵近似 2.1 弗 ...

  7. Chapter 7 (Symmetric Matrices and Quadratic Forms): The Singular Value Decomposition (奇异值分解, SVD)

    目录 奇异值 奇异值的定义 非零奇异值 The Singular Value Decomposition (SVD) 奇异值分解 一些性质 几何解释 紧奇异值分解与截断奇异值分解 奇异值分解与矩阵近似 ...

  8. 奇异值分解 SVD 的数学解释

    奇异值分解(Singular Value Decomposition,SVD)是一种矩阵分解(Matrix Decomposition)的方法.除此之外,矩阵分解还有很多方法,例如特征分解(Eigen ...

  9. 奇异值的物理意义是什么?强大的矩阵奇异值分解(SVD)及其应用

    作者:郑宁 链接:https://www.zhihu.com/question/22237507/answer/53804902 来源:知乎 著作权归作者所有.商业转载请联系作者获得授权,非商业转载请 ...

最新文章

  1. 活动报名 | 第三届中国法研杯司法人工智能挑战赛颁奖会日程出炉
  2. 话里话外:按单制造(MTO II)企业的资源瓶颈是怎么形成的?
  3. 白话Elasticsearch72_利用HDFS备份与恢复ES生产集群的数据
  4. Linux 常見的登錄檔檔名
  5. python操作sqlite3 导入csv文件_[转载]SQLite 3导入导出成txt或csv操作
  6. php预处理获取改变行数,php – 使用MySQLi预处理语句时无法获取行数...
  7. php的可变函数,php之可变函数的实例详解
  8. flask 上传excel 前端_flask-restful编写上传图片api
  9. [Delphi]ListView基本用法大全
  10. Linux的用户和组群管理
  11. (批处理)如何通过Python或批处理指令删除指定文件夹?
  12. Java女生后来_那些主动的女生后来怎么样了?
  13. 精品绿色便携软件 录制操作工具
  14. 记录四川移动盒子打开adb命令的方法 型号:UNT401H
  15. 解决wordpress部分博客文章页面无法显示的问题
  16. 谷歌施密特:中国人相当出色2025年将超美国成AI主导丨业界大佬财报频出【软件网每日新闻播报│第11-3期】
  17. 十进制与8421码、5421码、2421码、余3码之间的转换
  18. C语言中的指数函数pow()问题
  19. Mac看源码时,idea插件RESTfultook居然可以这样用?
  20. 刚买个炼狱蝰蛇1800dpi的下完驱动提示没有发现鼠标

热门文章

  1. WPF DataGrid控件的使用
  2. Java防止反编译实践
  3. 炉石传说 服务器维护,炉石传说服务器炸了怎么办?一直排不到人原因和解决方法[多图]...
  4. CentOS7下开启redis6379端口
  5. 知道这3步,帮你提升用户留存率
  6. 非常值得一看的35个Redis面试题总结(二)
  7. 动态规划-python
  8. 【Android实战】移动支付(微信、支付宝、银联)集成
  9. 计算机网络实验——FTP服务器配置(使用windows IIS服务)
  10. SOLOv2训练自己数据集(实例分割,停车位/牛分割)