奇异值分解

  • 1.奇异值分解
    • 1.1 变换(Transformations)
    • 1.2 线性变换(Linear Transformations)
    • 1.3 降维(Dimensionality Reduction)
    • 1.4 奇异值分解(SVD)
      • 1.4.1 如果矩阵AAA是方阵(Square Matrix)
      • 1.4.2 如果矩阵AAA是非方阵(Non-Square Matrix)
    • 1.5 图像压缩(Image Compression)
    • 1.6 如何计算分解的三个矩阵?
    • 1.7 联系与区别
      • 1.7.1 特征值和特征向量
      • 1.7.2 奇异值和奇异向量
    • 1.8 矩阵估计(Matrix Approximation with SVD)

1.奇异值分解

笔记来源:Singular Value Decomposition (SVD) and Image Compression

1.1 变换(Transformations)

左侧图形先进行水平方向缩放,再进行垂直方向缩放,而后进行旋转,发现经过一系列变换后与右侧图形不符,说明缩放和旋转的操作有时是有顺序的

正确操作:先进行旋转,再进行水平方向缩放,而后进行垂直方向缩放,得到与右侧一致的图形

1.2 线性变换(Linear Transformations)





一步复杂变换 AAA(主要考虑高维)分解为了三个简单变换 V†、Σ、UV^{\dagger}、\Sigma、UV†、Σ、U

1.3 降维(Dimensionality Reduction)

我们将上述矩阵Σ\SigmaΣ中的 σ2=0.44\sigma_2=0.44σ2​=0.44 修改为 σ2=0\sigma_2=0σ2​=0 ,二维图形直接被压缩成了一维


降维的好处:存储数据减少

1.4 奇异值分解(SVD)

1.4.1 如果矩阵AAA是方阵(Square Matrix)


例子:

1.4.2 如果矩阵AAA是非方阵(Non-Square Matrix)

1.5 图像压缩(Image Compression)

1.6 如何计算分解的三个矩阵?


U=[u1u2⋯]Σ=diag[σ1σ2⋯]VT=[v1Tv2T⋮]U=\begin{bmatrix}\boldsymbol{u}_1 & \boldsymbol{u}_2 & \cdots \end{bmatrix}\\ ~\\ \Sigma=diag\begin{bmatrix}\sigma_1 & \sigma_2 & \cdots \end{bmatrix}\\ ~\\ V^{T}=\begin{bmatrix}v_1^T \\ v_2^T\\ \vdots\end{bmatrix} U=[u1​​u2​​⋯​] Σ=diag[σ1​​σ2​​⋯​] VT=⎣⎢⎡​v1T​v2T​⋮​⎦⎥⎤​

计算矩阵AAA的特征值
detA=λ1λ2=15trA=λ1+λ2=8λ1=3、λ2=5det\ A=\lambda_1\lambda_2=15\\ ~\\ tr\ A=\lambda_1+\lambda_2=8\\ ~\\ \lambda_1=3、\lambda_2=5 det A=λ1​λ2​=15 tr A=λ1​+λ2​=8 λ1​=3、λ2​=5
计算 AATAA^TAAT
AATui=σi2uiAAT=[3045][3405]=[25202025]AA^T\boldsymbol{u}_i=\sigma^2_i\boldsymbol{u}_i\\ ~\\ AA^T= \begin{bmatrix}3 & 0\\ 4 & 5\end{bmatrix} \begin{bmatrix}3 & 4\\ 0 & 5\end{bmatrix}= \begin{bmatrix}25 & 20\\ 20 & 25\end{bmatrix} AATui​=σi2​ui​ AAT=[34​05​][30​45​]=[2520​2025​]
计算AATAA^TAAT的特征值 σ2\sigma^2σ2【这里的 σ\sigmaσ 叫做矩阵AAA的奇异值】
法一:det(AAT−σI)=0det(AA^T-\sigma I)=0det(AAT−σI)=0
法二:
detAAT=225=σ12σ22trAAT=50=σ12+σ22σ12=45、σ22=5σ1=45、σ2=5σ1σ2=15=detAdet\ AA^T=225=\sigma_1^2\sigma_2^2\\ tr\ AA^T=50=\sigma_1^2+\sigma_2^2\\ \sigma_1^2=45、\sigma_2^2=5\\ \sigma_1=\sqrt{45}、\sigma_2=\sqrt{5}\\ \sigma_1\sigma_2=15=det\ A det AAT=225=σ12​σ22​tr AAT=50=σ12​+σ22​σ12​=45、σ22​=5σ1​=45​、σ2​=5​σ1​σ2​=15=det A

计算 ATAA^TAATA
ATAvi=σi2viATA=[3405][3045]=[9121241]A^TA\boldsymbol{v}_i=\sigma^2_i\boldsymbol{v}_i\\ ~\\ A^TA=\begin{bmatrix}3 & 4\\ 0 & 5\end{bmatrix} \begin{bmatrix}3 & 0\\ 4 & 5\end{bmatrix}= \begin{bmatrix}9 & 12\\ 12 & 41\end{bmatrix} ATAvi​=σi2​vi​ ATA=[30​45​][34​05​]=[912​1241​]
计算 ATAA^TAATA的特征向量 v1\boldsymbol{v}_1v1​【这里的 v1\boldsymbol{v}_1v1​ 是矩阵 AAA 的右奇异向量】
ATAv1=σ12v1[9121241][a1a2]=45[a1a2]a1=a2[9121241][11]=45[11]A^TA\boldsymbol{v}_1=\sigma_1^2\boldsymbol{v}_1\\ ~\\ \begin{bmatrix}9 & 12\\ 12 & 41\end{bmatrix} \begin{bmatrix}a_1 \\ a_2\end{bmatrix}=45 \begin{bmatrix}a_1 \\ a_2\end{bmatrix}\\ ~\\ a_1=a_2\\ ~\\ \begin{bmatrix}9 & 12\\ 12 & 41\end{bmatrix} \begin{bmatrix}1 \\ 1\end{bmatrix}=45 \begin{bmatrix}1 \\ 1\end{bmatrix} ATAv1​=σ12​v1​ [912​1241​][a1​a2​​]=45[a1​a2​​] a1​=a2​ [912​1241​][11​]=45[11​]
计算 ATAA^TAATA的特征向量 v2\boldsymbol{v}_2v2​【这里的 v2\boldsymbol{v}_2v2​ 是矩阵 AAA 的右奇异向量】
ATAv2=σ22v2[9121241][a3a4]=5[a3a4]a3=−a4[9121241][−11]=5[−11]A^TA\boldsymbol{v}_2=\sigma_2^2\boldsymbol{v}_2\\ ~\\ \begin{bmatrix}9 & 12\\ 12 & 41\end{bmatrix} \begin{bmatrix}a_3 \\ a_4\end{bmatrix}=5 \begin{bmatrix}a_3 \\ a_4\end{bmatrix}\\ ~\\ a_3=-a_4\\ ~\\ \begin{bmatrix}9 & 12\\ 12 & 41\end{bmatrix} \begin{bmatrix}-1 \\ 1\end{bmatrix}=5 \begin{bmatrix}-1 \\ 1\end{bmatrix} ATAv2​=σ22​v2​ [912​1241​][a3​a4​​]=5[a3​a4​​] a3​=−a4​ [912​1241​][−11​]=5[−11​]
单位化后的矩阵AAA的右奇异向量v1、v2\boldsymbol{v}_1、\boldsymbol{v}_2v1​、v2​
v1=12[11]、v2=12[−11]\boldsymbol{v}_1=\frac{1}{\sqrt{2}}\begin{bmatrix}1 \\ 1\end{bmatrix}、\boldsymbol{v}_2=\frac{1}{\sqrt{2}}\begin{bmatrix}-1 \\ 1\end{bmatrix} v1​=2​1​[11​]、v2​=2​1​[−11​]
计算矩阵AAA的左奇异向量u1、u2\boldsymbol{u}_1、\boldsymbol{u}_2u1​、u2​
Av1=σ1u1u1=Av1σ1=[13]Av2=σ2u2u2=Av2σ2=[−31]A\boldsymbol{v}_1=\sigma_1\boldsymbol{u}_1\\ ~\\ \boldsymbol{u}_1=\frac{A\boldsymbol{v}_1}{\sigma_1}=\begin{bmatrix}1 \\ 3\end{bmatrix}\\ ~\\ A\boldsymbol{v}_2=\sigma_2\boldsymbol{u}_2\\ ~\\ \boldsymbol{u}_2=\frac{A\boldsymbol{v}_2}{\sigma_2}=\begin{bmatrix}-3 \\ 1\end{bmatrix} Av1​=σ1​u1​ u1​=σ1​Av1​​=[13​] Av2​=σ2​u2​ u2​=σ2​Av2​​=[−31​]
单位化矩阵AAA的左奇异向量u1、u2\boldsymbol{u}_1、\boldsymbol{u}_2u1​、u2​
u1=110[13]、u2=110[−31]\boldsymbol{u}_1=\frac{1}{\sqrt{10}}\begin{bmatrix}1 \\ 3\end{bmatrix}、\boldsymbol{u}_2=\frac{1}{\sqrt{10}}\begin{bmatrix}-3 \\ 1\end{bmatrix} u1​=10​1​[13​]、u2​=10​1​[−31​]

分解成的三个矩阵


1.7 联系与区别

笔记来源:Understanding Eigenvalues and Singular Values

联系:特征值和奇异值都描述了线性变换的量级或者说是变换幅度

They (eigenvalues and singular values) both describe the behavior of a matrix on a certain set of vectors.
And the corresponding eigen- and singular values describe the magnitude of that action.

1.7.1 特征值和特征向量

本人相关博客:特征值、特征向量、迹

笔记来源:Understanding Eigenvalues and Singular Values

The eigenvectors of a matrix describe the directions of its invariant action.(不变作用方向)

That eigenvectors give the directions of invariant action is obvious from the definition. The definition says that when A acts on an eigenvector, it just multiplies it by a constant, the corresponding eigenvalue. In other words, when a linear transformation acts on one of its eigenvectors, it shrinks the vector or stretches it and reverses its direction if λ is negative, but never changes the direction otherwise. The action is invariant.

Av=λvA\boldsymbol{v}=\lambda\boldsymbol{v} Av=λv

the vector v\boldsymbol{v}v is called eigenvector
A scalar λ\lambdaλ is called eigenvalue of AAA

1.7.2 奇异值和奇异向量

笔记来源:Understanding Eigenvalues and Singular Values
Av=σuA∗u=σvA\boldsymbol{v}=\sigma\boldsymbol{u}\\ A^*\boldsymbol{u}=\sigma\boldsymbol{v} Av=σuA∗u=σv
where A∗A^*A∗ is the conjugate transpose of AAA




Av1=σ1u1Av2=σ2u2A\boldsymbol{v}_1=\sigma_1\boldsymbol{u}_1\\ A\boldsymbol{v}_2=\sigma_2\boldsymbol{u}_2 Av1​=σ1​u1​Av2​=σ2​u2​

A scalar σ\sigmaσ is a singular value of AAA
σ1\sigma_1σ1​ is the largest singular value of AAA with right singular vector v\boldsymbol{v}v
σ2\sigma_2σ2​ is the least singular value of AAA with left singular vector u\boldsymbol{u}u

the vectors u、v\boldsymbol{u}、\boldsymbol{v}u、v are singular vectors
the vector u\boldsymbol{u}u is called a left singular vectors
the vector v\boldsymbol{v}v is called a right singular vectors

The singular vectors of a matrix describe the directions of its maximum action. (最大作用方向)

矩阵AAA对原空间中的任一单位向量x\boldsymbol{x}x进行变换
arg max⁡x,∣∣x∣∣=1∣∣Ax∣∣=∣∣Av∣∣=σ1\argmax\limits_{\boldsymbol{x},||\boldsymbol{x}||=1}||A\boldsymbol{x}||=||A\boldsymbol{v}||=\sigma_1 x,∣∣x∣∣=1argmax​∣∣Ax∣∣=∣∣Av∣∣=σ1​

所有单位向量x\boldsymbol{x}x中某一个向量长度变换最大,它就是右奇异向量v\boldsymbol{v}v
其在矩阵AAA的作用下,长度 ∣∣Av∣∣=σ1||A\boldsymbol{v}||=\sigma_1∣∣Av∣∣=σ1​

单位圆经过线性变换AAA得到椭圆
右奇异向量v\boldsymbol{v}v在椭圆的半长轴上
左奇异向量u\boldsymbol{u}u在椭圆的半短轴上

拓展到三维空间


1.8 矩阵估计(Matrix Approximation with SVD)


将当前最大奇异值 333 改写为 000


改写后矩阵 A1A_1A1​ 对应的线性变换如下图


将矩阵A1A_1A1​中的当前最大奇异值 222 改写为 000


改写后矩阵 A2A_2A2​ 对应的线性变换如下图

重点:每一个奇异向量都会产生一个线性子空间中的标准正交基

在所有方向正交于有最大奇异向量(最大奇异值对应的向量)中,一个奇异值和其奇异向量将给出最大作用的方向

重要应用:
1.在一些统计学、机器学习中要求找到某个矩阵的低秩估计(Low-rank approximation)
2.主成分分析(PCA)也是这一类问题,即用一些最大方差的不相关分量近似某个观测矩阵X

具体做法:
计算SVD并将最小的奇异值改为0

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

  1. 特征分解(eigendecomposition) and 奇异值分解(singular value decomposition, SVD)

  2. MIT | 数据分析、信号处理和机器学习中的矩阵方法 笔记系列 Lecture 6 Singular Value Decomposition (SVD)

    本系列为MIT Gilbert Strang教授的"数据分析.信号处理和机器学习中的矩阵方法"的学习笔记. Gilbert Strang & Sarah Hansen | ...

  3. Singular Value Decomposition(SVD)--奇异值分解【转】

    奇异值分解是线性代数中一种重要的矩阵分解,在信号处理.统计学等领域有重要应用.奇异值分解在某些方面与对称矩阵或Hermite矩阵基于特征向量的对角化类似.然而这两种矩阵分解尽管有其相关性,但还是有明显 ...

  4. 奇异值(Singular value decomposition SVD)分解

    本文摘自两篇博客,感谢博主分享 一.原文地址:http://blog.csdn.net/wangzhiqing3/article/details/7446444 SVD分解 SVD分解是LSA的数学基 ...

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

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

  6. 什么是奇异值?奇异值分解是什么?SVD分解详解及实战

    什么是奇异值?奇异值分解是什么?SVD(Singular Value Decomposition)分解详解及实战 TSVD:Truncated Singular Value Decomposition ...

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

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

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

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

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

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

最新文章

  1. 医院选址问题--数据结构课程设计
  2. 欧盟要统一充电接口为USB-C,苹果急了:这是在扼杀创新
  3. awd的批量脚本 pwn_AWD攻防之web入门篇
  4. dnscat使用——整体感觉这个工具不完善,失败率很高,传文件时候没有完整性校验,我自己测试时通过域名转发失败,可能是其特征过于明显导致...
  5. python爬虫实战测评_Python 爬虫实战入门(上)
  6. Android中点击按钮获取string.xml中内容并弹窗提示
  7. 2、xen虚拟机的安装
  8. Linux vim的w,q,!,/
  9. 打包filemanager-webpack-plugin的报错和解决
  10. Golang学习---常用库
  11. Node — 第九天 (ES6降级 and 发布属于自己的[第三方模块]包)
  12. 一篇万字长文读懂微软PDB、SourceLink——.net core之nuget 包调试
  13. 【渝粤教育】21秋期末考试计量经济学10551k1
  14. 使用 rqt_console 和 roslaunch
  15. MATLAB(六)数据处理
  16. 代码编辑框控件_某游戏控件遍历
  17. 徐起预热realme Q5系列:骁龙870+80W快充 新一代千元机皇
  18. 程序员的自我修养 pdf_软件特攻队|C/C++程序员的自我修养(5)
  19. Python进阶(四)Python中的异常
  20. android TextView 异常换行问题

热门文章

  1. 从零开始vim搭建Java开发环境之coc.nvim 篇
  2. vim快捷键运行Java、Python程序
  3. itextpdf读取PDF文件流报Rebuild failed: trailer not found at file pointer 846942
  4. 名画343 张若澄《燕山八景图》
  5. oracle 每天 增量备份,Oracle的差异增量备份和累积增量备份
  6. java下拉菜单选择前弹提示框_javascript实现下拉提示选择框
  7. 秦九昭算法——MATLAB实现
  8. 一个及其简单的打字游戏
  9. 618真香数码产品有哪些、618数码精品清单
  10. 灵性的层次:程序、文字、音乐