对SVD奇异值分解的理解
首先推荐一篇博客,奇异值分解(SVD)原理详解及推导 - CSDN博客,讲解的很清楚。这里我谈谈自己的理解,方便以后回顾。
如果把向量理解为空间中的一个元素,那么矩阵可以理解为两个空间上的映射。在线性代数中我们常见的是正交变换,这种变换不会改变向量之间的夹角,可以用坐标系的平移旋转来直观理解。但是对一般的方阵,甚至对更一般的非对称矩阵,这种变化的几何含义又该怎么理解,一直都没有搞清楚。通过奇异值分解能说明这些变化 的实际含义。
首先我们来看一般的方阵\(M(n*n)\),可以找到一对向量\(x_1,x_2\),在变换前后都是正交的。很明显M的特征向量正好具有这样的性质。至于特征向量有多少则要看矩阵的M的秩。我们设置M的秩为\(k(k<n)\),那么就可以找到k个特征向量\((x_1,x_2,...,x_k)\),采用Gram_Smit方法可以将这k个正交基增广为n个正交基,即n维空间中的一组基底X。然后对空间中任意向量\(\vec{a}\)用X来表示:\(\vec{a}=\{a_1\vec{x_1}+a_2\vec{x_2}+...+a_n\vec{x_n}\}\),然后我们看一下\(Ma\)的分解:
\(Ma=\{x_1,x_2,...,x_n\}*\begin{bmatrix}\lambda_1&&&&&&\\&\lambda_2&&&&&\\&&\ddots&&&&\\&&&\lambda_k&&&\\&&&&0&&\\&&&&&\ddots&\\&&&&&&0\end{bmatrix}*\begin{bmatrix}x_1^T\\x_2^T\\\vdots\\x_n^T\end{bmatrix}*(a_1x_1+a_2x_2+...+a_nx_n)\)
其中\(x_i^Tx_j=\begin{cases}1\text{ if }i=j \\\ 0\text{ if }i\neq j \end{cases}\)
\(Ma=\{x_1,x_2,...,x_n\}*\begin{bmatrix}\lambda_1&&&&&&\\&\lambda_2&&&&&\\&&\ddots&&&&\\&&&\lambda_k&&&\\&&&&0&&\\&&&&&\ddots&\\&&&&&&0\end{bmatrix}*\begin{bmatrix}a_1\\a_2\\\vdots\\a_n\end{bmatrix}\)
\(Ma=\{x_1,x_2,...,x_n\}*\begin{bmatrix}\lambda_1a_1&&&&&&\\&\lambda_2a_2&&&&&\\&&\ddots&&&&\\&&&\lambda_ka_k&&&\\&&&&0&&\\&&&&&\ddots&\\&&&&&&0\end{bmatrix}\)
\(Ma=\lambda_1a_1x_1+\lambda_2a_2x_2+...+\lambda_ka_kx_k\)
从中我们可以看出这种不满秩的方阵所对应的几何变换就是原始向量在特征向量上的分量缩放之后再重组,至于与特征向量垂直的分量直接舍弃了。
大家要注意这里就是一种SVD分解,而不是特征值分解,因为秩小于维度的方阵奇异,不能做特征值分解。但特征值分解也可以看做是满秩的特殊SVD分解,也就是不舍弃任何一个维度上的信息。至于更一般的SVD分解,即矩阵非对称,其含义也是相似的,只不过此时的左奇异矩阵和右奇异矩阵不是对称关系,而且右奇异矩阵中的特征向量是\(M^TM\)的特征向量增广之后的结果,而左奇异矩阵中的特征向量是\(MM^T\)中的特征向量增广之后的。
虽然一般的SVD分解复杂,但本质也是将原空间的向量在特征向量方向上伸缩变换后重组,同时舍弃与特征向量垂直部分的分量。
如果换个角度去想,为什么不满秩的矩阵不可逆,因为非满秩矩阵在变换的过程中丢失了原本的一部分信息,不可逆也是必然的。
这就是我对SVD的理解,也是我第一次用markdown来写博客,感觉挺方便的,特别是对公式的书写。
对SVD奇异值分解的理解的更多相关文章
- SVD奇异值分解的基本原理和运用
SVD奇异值分解: SVD是一种可靠的正交矩阵分解法.可以把A矩阵分解成U,∑,VT三个矩阵相乘的形式.(Svd(A)=[U*∑*VT],A不必是方阵,U,VT必定是正交阵,S是对角阵<以奇异值 ...
- SVD奇异值分解的几何物理意义资料汇总
学习SVD奇异值分解的网上资料汇总: 1. 关于svd的一篇概念文,这篇文章也是后续几篇文章的鼻祖~ http://www.ams.org/samplings/feature-column/fcarc ...
- [机器学习]-SVD奇异值分解的基本原理和运用
SVD奇异值分解: SVD是一种可靠的正交矩阵分解法.可以把A矩阵分解成U,∑,VT三个矩阵相乘的形式.(Svd(A)=[U*∑*VT],A不必是方阵,U,VT必定是正交阵,S是对角阵<以奇异值 ...
- 『科学计算_理论』SVD奇异值分解
转载请声明出处 SVD奇异值分解概述 SVD不仅是一个数学问题,在工程应用中的很多地方都有它的身影,比如前面讲的PCA,掌握了SVD原理后再去看PCA那是相当简单的,在推荐系统方面,SVD更是名声大噪 ...
- 简单易学的机器学习算法—SVD奇异值分解
简单易学的机器学习算法-SVD奇异值分解 一.SVD奇异值分解的定义 假设M是一个的矩阵,如果存在一个分解: 其中的酉矩阵,的半正定对角矩阵,的共轭转置矩阵,且为的酉矩阵.这样的分解称为M的奇 ...
- 关于奇异值分解(SVD)的理解
奇异值分解实际上是将一个矩阵,分解成为两个不同维度(行数和列数)上的正交向量集之间的映射变换,奇异值则是变换时的缩放! 例如上面的矩阵M就是一个5维映射到4维的变换矩阵,而SVD分解得到的奇异值和奇异 ...
- SVD分解的理解[转载]
http://www.bfcat.com/index.php/2012/03/svd-tutorial/ SVD分解(奇异值分解),本应是本科生就掌握的方法,然而却经常被忽视.实际上,SVD分解不但很 ...
- Deep Learning基础--SVD奇异值分解
矩阵奇异值的物理意义是什么?如何更好地理解奇异值分解?下面我们用图片的例子来扼要分析. 矩阵的奇异值是一个数学意义上的概念,一般是由奇异值分解(Singular Value Decomposition ...
- SVD分解的理解
对称阵A 相应的,其对应的映射也分解为三个映射.现在假设有x向量,用A将其变换到A的列空间中,那么首先由U'先对x做变换: 由于正交阵“ U的逆=U‘ ”,对于两个空间来讲,新空间下的“ 基E' 坐标 ...
随机推荐
- Swift学习第二天--面向对象
//: Playground - noun: a place where people can play import UIKit var str = "Hello, playground& ...
- centos7 卸载home 扩大root空间
=============================================== 2017/11/1_第1次修改 ccb_warlock == ...
- Notepad++使用教程
Notepad++ 快捷键 大全 Ctrl+C 复制Ctrl+X 剪切Ctrl+V 粘贴Ctrl+Z 撤消Ctrl+Y 恢复Ctrl+A 全选Ctrl+F 键查找对话框启动Ctrl+H 查找/替换对话 ...
- DBA之路
对于一个励志要成为DBA的人,虽然还有不足,梦想还是要有的,万一实现了呢.做一个关于DBA成长之路的相关目录,作为灯塔. --------------------------------------- ...
- c#中不同类中变量的引用方法
(1)如果两个类没有继承关系,存取另一个类中变量的方法如下: public class A { // 注意: // Count是静态变量(static),称为类变量.类变量无需实例化即可使用 publ ...
- Python中将函数作为另一个函数的参数传入并调用
在Python中,函数本身也是对象,所以可以将函数作为参数传入另一函数并进行调用 在旧版本中,可以使用apply(function, *args, **kwargs)进行调用,但是在新版本中已经移除, ...
- Exception: Unexpected End Of File(crontab)
Exception: Unexpected End Of File [solphire@hadoop02 tools]$ crontab -l 1 * * * * source /etc/profil ...
- [Micropython][ESP8266] TPYBoard V202 之MQTT协议接入OneNET云平台
随着移动互联网的发展,MQTT由于开放源代码,耗电量小等特点,将会在移动消息推送领域会有更多的贡献,在物联网领域,传感器与服务器的通信,信息的收集,MQTT都可以作为考虑的方案之一.在未来MQTT会进 ...
- 我的web聊天之---序章
有时候自我感觉良好,人啊就开始膨胀,细细想来,自己还是那么苍白.---- 致傻傻的我 大家都知道,平时上班总是拿着手机看看微信,看看新闻,这个不太好,这不是重点,重点是我们公司web版本的微信,QQ都 ...
- Upgrade with the Gradle Wrapper, gradlew升级
springboot 2.0需要gradle 1+, 而自动构建的都是3.+,手动升级如下 Upgrade with the Gradle Wrapper If your existing Gradl ...