- 线性变化的几何表现

  • 首先看下简单的矩阵,这是一个对角矩阵

    M=(3001)

    我们先用这个对角矩阵乘以一个点来看看它的几何变化。

    (3001)∗(xy)=(3xy)

    在几何上就相当于把原来的向量x轴方向拉伸成了原来的3倍

    –》

  • 再来看下对称矩阵

    M=(2112)

    利用对称矩阵乘以一个点来看看它的几何变化

    -》

    这并不能清晰的显示出发生了如何的几何变换。我们能够把整个坐标轴逆时针旋转45度来更好的发现规律。

    -》

    从上图能够看出原来的红色部分。沿着一个方向被拉伸了3倍。

- 神秘值分解

这是神秘值分解的几何实质:对于随意的二维方阵(M),我们都能够找到相互正交的向量 (v1,v2),使得经过M变换后得到的两个向量(Mv1,Mv2)还是正交的。

-》

 v1和v2是正交的单位向量 u1和u2是在Mv1和Mv2方向上的单位向量σ1和σ2表示v1和v2经过M变换后的拉伸倍数Mv1=σ1u1Mv2=σ2u2

对于随意的二维向量x

x=(v1.x)v1+(v2.x)v2Mx=(v1.x)Mv1+(v2.x)Mv2Mx=(v1.x)σ1u1+(v2.x)σ2u2由于v.x=vTxMx=u1σ1vT1x+u2σ2vT2xM=u1σ1vT1+u2σ2vT2M=UΣVTU=(u1u2)Σ=(σ100σ2)V=(v1v2)

-那么我们怎么发现神秘值呢

我们能够对不论什么矩阵进行神秘值分解,首先我们先看下最先的样例,我们在原来的红色正方形上加上一个单位圆

-》

变化后的图形是个椭圆。我们我们能够在椭圆的最长和最短的方向上发现正交基

-》

我们可以发现vi和vj是MTM的特征向量,因为MTM是一个对称矩阵那么不同特征值所对应的特征向量都是正交的所以vTivj=0,奇异值σi=|Mvi|ui是Mvi方向上的单位向量,问题是为什么ui和uj是正交的呢?我们假设σi和σj是不同的奇异值Mvi=σiuiMvj=σjuj.(Mvi)TMvj=vTiMTMvj=vTiλvj=λvTivj=0.(Mvi)TMvj=(σiui)Tσjuj=0uTiuj=0ui和uj正交所以我们发现了一系列的正交的vi经过M变换后成为ui。uiuj还是正交的

- 另外一个样例

M=(1212)

利用M对v1 v2进行变换

-》

在这个样例中第二个神秘值为0,

M=u1σ1vT1

M的秩是等于非0的神秘值的数目的。

- 数据压缩

神秘值分解能够有效地应用在数据表示中,如果我们来表示一个25*15的黑白像素



由于在整个图像中仅仅有3种列向量。所以我们能够来表示图像更加地高效



我们用一个25*15的矩阵来表示这个图像,1表示白色,0表示黑色



我们对M进行神秘值分解。仅仅发现了3个非0的神秘值

σ1=14.72σ2=5.22σ3=3.31M=u1σ1vT1+u2σ2vT2+u3σ3vT3ui是一个25维的向量vi是15维的向量我们用了非常少的数据量就把刚刚的M矩阵表示了

-噪音处理

如果我们利用了一个扫描器来扫描图像。可是在扫描的过程中引入了噪声



我们对这个25*15的矩阵进行神秘值分解

σ1=14.15σ2=4.67σ3=3.00σ4=0.21σ5=0.19...σ15=0.05M近似表示为M=u1σ1vT1+u2σ2vT2+u3σ3vT3

神秘值分解(Singular Value Decomposition)的更多相关文章

  1. 斯坦福ML公开课笔记15—隐含语义索引、神秘值分解、独立成分分析

    斯坦福ML公开课笔记15 我们在上一篇笔记中讲到了PCA(主成分分析). PCA是一种直接的降维方法.通过求解特征值与特征向量,并选取特征值较大的一些特征向量来达到降维的效果. 本文继续PCA的话题, ...

  2. SVD神秘值分解

    SVD分解 SVD分解是LSA的数学基础,本文是我的LSA学习笔记的一部分,之所以单独拿出来,是由于SVD能够说是LSA的基础,要理解LSA必须了解SVD,因此将LSA笔记的SVD一节单独作为一篇文章 ...

  3. 奇异值分解(We Recommend a Singular Value Decomposition)

    奇异值分解(We Recommend a Singular Value Decomposition) 原文作者:David Austin原文链接: http://www.ams.org/samplin ...

  4. 【转】奇异值分解(We Recommend a Singular Value Decomposition)

    文章转自:奇异值分解(We Recommend a Singular Value Decomposition) 文章写的浅显易懂,很有意思.但是没找到转载方式,所以复制了过来.一个是备忘,一个是分享给 ...

  5. 矩阵分解(rank decomposition)文章代码汇总

    矩阵分解(rank decomposition)文章代码汇总 矩阵分解(rank decomposition) 本文收集了现有矩阵分解的几乎所有算法和应用,原文链接:https://sites.goo ...

  6. [转]奇异值分解(We Recommend a Singular Value Decomposition)

    原文作者:David Austin原文链接: http://www.ams.org/samplings/feature-column/fcarc-svd译者:richardsun(孙振龙) 在这篇文章 ...

  7. 【线性代数】6-7:SVD分解(Singular Value Decomposition-SVD)

    title: [线性代数]6-7:SVD分解(Singular Value Decomposition-SVD) categories: Mathematic Linear Algebra keywo ...

  8. We Recommend a Singular Value Decomposition

    We Recommend a Singular Value Decomposition Introduction The topic of this article, the singular val ...

  9. [转载]We Recommend a Singular Value Decomposition

    原文:http://www.ams.org/samplings/feature-column/fcarc-svd Introduction The topic of this article, the ...

随机推荐

  1. 详解Python中的__new__、__init__、__call__三个特殊方法(zz)

    __new__: 对象的创建,是一个静态方法,第一个参数是cls.(想想也是,不可能是self,对象还没创建,哪来的self)__init__ : 对象的初始化, 是一个实例方法,第一个参数是self ...

  2. nginx部署vue工程和反向代理nodejs工程

    前端是vue,后端是nodejs 前端打包成dist目录,后端接口是localhost:4000/api server { listen 80; #listen [::]:80; server_nam ...

  3. 来,让我们谈一谈 Normalize.css

    Normalize.css 只是一个很小的CSS文件,但它在默认的HTML元素样式上提供了跨浏览器的高度一致性.相比于传统的CSS reset,Normalize.css是一种现代的.为HTML5准备 ...

  4. CF GukiZ hates Boxes 【二分+贪心】

    Professor GukiZ is concerned about making his way to school, because massive piles of boxes are bloc ...

  5. Java学习之路(书籍推荐)

    一.基础类 1.<Thinking in java>(阅读2遍),入门第一位是建立正确的概念 2.<Core Java>这本书更贴近实践,更多API的介绍,同样,更新也更频繁. ...

  6. FZU 2150 Fire Game 【两点BFS】

    Fat brother and Maze are playing a kind of special (hentai) game on an N*M board (N rows, M columns) ...

  7. python3爬虫爬取猫眼电影TOP100(含详细爬取思路)

    待爬取的网页地址为https://maoyan.com/board/4,本次以requests.BeautifulSoup css selector为路线进行爬取,最终目的是把影片排名.图片.名称.演 ...

  8. 【线段树】bzoj3038 上帝造题的七分钟2 / bzoj3211 花神游历各国

    暴力修改,记录一段是否全部为1或0,若全是了,则不再修改. 注意3211一定要判是否为0,否则会T得惨无人道. #include<cstdio> #include<cmath> ...

  9. 关于char类型的说明

    #include<iostream> using namespace std; int main() {  char ch=128;//VC编译器默认是有符号的.但c并未明确给出.由编译器 ...

  10. [读书笔记]iOS 7 UI设计 对比度

    好久没写随笔了,最近在读<iOS 7 byTutorials>,很不错,推荐给大家. 每一个好的程序员也都是一个设计师,不懂设计的程序员不是好的CTO.哈哈,开个小玩笑. iOS 7设计的 ...