奇异值分解(Singular Values Decomposition,SVD)
奇异值分解
- 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=[u1u2⋯] Σ=diag[σ1σ2⋯] VT=⎣⎢⎡v1Tv2T⋮⎦⎥⎤
计算矩阵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=σi2ui AAT=[3405][3045]=[25202025]
计算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σ22tr 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=σi2vi ATA=[3045][3405]=[9121241]
计算 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=σ12v1 [9121241][a1a2]=45[a1a2] a1=a2 [9121241][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=σ22v2 [9121241][a3a4]=5[a3a4] a3=−a4 [9121241][−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=21[11]、v2=21[−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=σ1u1 u1=σ1Av1=[13] Av2=σ2u2 u2=σ2Av2=[−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=101[13]、u2=101[−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=σ1u1Av2=σ2u2
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 maxx,∣∣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)相关推荐
- 特征分解(eigendecomposition) and 奇异值分解(singular value decomposition, SVD)
- MIT | 数据分析、信号处理和机器学习中的矩阵方法 笔记系列 Lecture 6 Singular Value Decomposition (SVD)
本系列为MIT Gilbert Strang教授的"数据分析.信号处理和机器学习中的矩阵方法"的学习笔记. Gilbert Strang & Sarah Hansen | ...
- Singular Value Decomposition(SVD)--奇异值分解【转】
奇异值分解是线性代数中一种重要的矩阵分解,在信号处理.统计学等领域有重要应用.奇异值分解在某些方面与对称矩阵或Hermite矩阵基于特征向量的对角化类似.然而这两种矩阵分解尽管有其相关性,但还是有明显 ...
- 奇异值(Singular value decomposition SVD)分解
本文摘自两篇博客,感谢博主分享 一.原文地址:http://blog.csdn.net/wangzhiqing3/article/details/7446444 SVD分解 SVD分解是LSA的数学基 ...
- Chapter 7 (Symmetric Matrices and Quadratic Forms): The Singular Value Decomposition (奇异值分解, SVD)
目录 奇异值 奇异值的定义 非零奇异值 The Singular Value Decomposition (SVD) 奇异值分解 一些性质 几何解释 紧奇异值分解与截断奇异值分解 奇异值分解与矩阵近似 ...
- 什么是奇异值?奇异值分解是什么?SVD分解详解及实战
什么是奇异值?奇异值分解是什么?SVD(Singular Value Decomposition)分解详解及实战 TSVD:Truncated Singular Value Decomposition ...
- 推荐系统学习笔记之三 LFM (Latent Factor Model) 隐因子模型 + SVD (singular value decomposition) 奇异值分解
Low Rank Matrix Factorization低阶矩阵分解 在上一篇笔记之二里面说到我们有五部电影,以及四位用户,每个用户对电影的评分如下,?表示未评分. Movies\User User ...
- SVD奇异值分解(Singular Value Decomposition)
奇异值分解(Singular Value Decomposition)是线性代数中一种重要的矩阵分解,是矩阵分析中正规矩阵酉对角化的推广.在信号处理.统计学等领域有重要应用. 假设M是一个m×n阶矩阵 ...
- 特征值分解(Eigen Value Decomposition,EVD)、奇异值分解(Singular Value Decomposition,SVD)原理、公式推导及应用
1 正交矩阵&正交变换 正交变换是保持图形形状和大小不变的几何变换,包含旋转.平移.轴对称及这些变换的复合形式,正交变换可以保持向量的长度和向量之间的角度不变.特别的,标准正交基经正交变换后仍 ...
最新文章
- 医院选址问题--数据结构课程设计
- 欧盟要统一充电接口为USB-C,苹果急了:这是在扼杀创新
- awd的批量脚本 pwn_AWD攻防之web入门篇
- dnscat使用——整体感觉这个工具不完善,失败率很高,传文件时候没有完整性校验,我自己测试时通过域名转发失败,可能是其特征过于明显导致...
- python爬虫实战测评_Python 爬虫实战入门(上)
- Android中点击按钮获取string.xml中内容并弹窗提示
- 2、xen虚拟机的安装
- Linux vim的w,q,!,/
- 打包filemanager-webpack-plugin的报错和解决
- Golang学习---常用库
- Node — 第九天 (ES6降级 and 发布属于自己的[第三方模块]包)
- 一篇万字长文读懂微软PDB、SourceLink——.net core之nuget 包调试
- 【渝粤教育】21秋期末考试计量经济学10551k1
- 使用 rqt_console 和 roslaunch
- MATLAB(六)数据处理
- 代码编辑框控件_某游戏控件遍历
- 徐起预热realme Q5系列:骁龙870+80W快充 新一代千元机皇
- 程序员的自我修养 pdf_软件特攻队|C/C++程序员的自我修养(5)
- Python进阶(四)Python中的异常
- android TextView 异常换行问题
热门文章
- 从零开始vim搭建Java开发环境之coc.nvim 篇
- vim快捷键运行Java、Python程序
- itextpdf读取PDF文件流报Rebuild failed: trailer not found at file pointer 846942
- 名画343 张若澄《燕山八景图》
- oracle 每天 增量备份,Oracle的差异增量备份和累积增量备份
- java下拉菜单选择前弹提示框_javascript实现下拉提示选择框
- 秦九昭算法——MATLAB实现
- 一个及其简单的打字游戏
- 618真香数码产品有哪些、618数码精品清单
- 灵性的层次:程序、文字、音乐