SVD神秘值分解

SVD分解

SVD分解是LSA的数学基础,本文是我的LSA学习笔记的一部分,之所以单独拿出来,是由于SVD能够说是LSA的基础,要理解LSA必须了解SVD,因此将LSA笔记的SVD一节单独作为一篇文章。本节讨论SVD分解相关数学问题,一个分为3个部分,第一部分讨论线性代数中的一些基础知识,第二部分讨论SVD矩阵分解,第三部分讨论低阶近似。本节讨论的矩阵都是实数矩阵。

基础知识

1.
矩阵的秩:矩阵的秩是矩阵中线性无关的行或列的个数

2.
对角矩阵:对角矩阵是除对角线外全部元素都为零的方阵

3.
单位矩阵:假设对角矩阵中全部对角线上的元素都为零,该矩阵称为单位矩阵

4.
特征值:对一个M x M矩阵C和向量X,假设存在λ使得下式成立

则称λ为矩阵C的特征值,X称为矩阵的特征向量。非零特征值的个数小于等于矩阵的秩。

5.
特征值和矩阵的关系:考虑下面矩阵

该矩阵特征值λ1
= 30,λ2 = 20,λ3 = 1。相应的特征向量

如果VT=(2,4,6)
计算S x VT

有上面计算结果能够看出,矩阵与向量相乘的结果与特征值,特征向量有关。观察三个特征值λ1
= 30,λ2 = 20,λ3 = 1,λ3值最小,对计算结果的影响也最小,假设忽略λ3,那么运算结果就相当于从(60,80,6)转变为(60,80,0),这两个向量十分相近。这也表示了数值小的特征值对矩阵-向量相乘的结果贡献小,影响小。这也是后面谈到的低阶近似的数学基础。

矩阵分解

1.
方阵的分解

1)
设S是M x M方阵,则存在下面矩阵分解

当中U
的列为S的特征向量,为对角矩阵,当中对角线上的值为S的特征值,按从大到小排列:

2)
设S是M x M 方阵,而且是对称矩阵,有M个特征向量。则存在下面分解

当中Q的列为矩阵S的单位正交特征向量,仍表示对角矩阵,当中对角线上的值为S的特征值,按从大到小排列。最后,QT=Q-1,由于正交矩阵的逆等于其转置。

2.
神秘值分解

上面讨论了方阵的分解,可是在LSA中,我们是要对Term-Document矩阵进行分解,非常显然这个矩阵不是方阵。这时须要神秘值分解对Term-Document进行分解。神秘值分解的推理使用到了上面所讲的方阵的分解。

如果C是M
x N矩阵,U是M x M矩阵,当中U的列为CCT的正交特征向量,V为N
x N矩阵,当中V的列为CTC的正交特征向量,再如果r为C矩阵的秩,则存在神秘值分解:

当中CCT和CTC的特征值同样,为

Σ为M
X N,当中,其余位置数值为0,的值按大小降序排列。下面是Σ的完整数学定义:

σi称为矩阵C的神秘值。

用C乘以其转置矩阵CT得:

上式正是在上节中讨论过的对称矩阵的分解。

神秘值分解的图形表示:

从图中能够看到Σ尽管为M
x N矩阵,但从第N+1行到M行全为零,因此能够表示成N x N矩阵,又因为右式为矩阵相乘,因此U能够表示为M x N矩阵,VT能够表示为N
x N矩阵

3.
低阶近似

LSA潜在语义分析中,低阶近似是为了使用低维的矩阵来表示一个高维的矩阵,并使两者之差尽可能的小。本节主要讨论低阶近似和F-范数。

给定一个M
x N矩阵C(其秩为r)和正整数k,我们希望找到一个M x N矩阵Ck,其秩不大于K。设X为C与Ck之间的差,X=C
– Ck,X的F-范数为

当k远小于r时,称Ck为C的低阶近似,当中X也就是两矩阵之差的F范数要尽可能的小。

SVD能够被用与求低阶近似问题,过程例如以下:

1.
给定一个矩阵C,对其神秘值分解:

2.
构造,它是将的第k+1行至M行设为零,也就是把的最小的r-k个(the
r-k smallest)神秘值设为零。

3.
计算Ck

回顾在基础知识一节里以前讲过,特征值数值的大小对矩阵-向量相乘影响的大小成正比,而神秘值和特征值也是正比关系,因此这里选取数值最小的r-k个特征值设为零合乎情理,即我们所希望的C-Ck尽可能的小。完整的证明能够在Introduction
to Information Retrieval[2]中找到。

我们如今也清楚了LSA的基本思路:LSA希望通过减少传统向量空间的维度来去除空间中的“噪音”,而降维能够通过SVD实现,因此首先对Term-Document矩阵进行SVD分解,然后降维并构造语义空间。

时间: 2024-08-24 04:27:06

SVD神秘值分解的相关文章

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

斯坦福ML公开课笔记15 我们在上一篇笔记中讲到了PCA(主成分分析). PCA是一种直接的降维方法.通过求解特征值与特征向量,并选取特征值较大的一些特征向量来达到降维的效果. 本文继续PCA的话题,包含PCA的一个应用--LSI(Latent Semantic Indexing, 隐含语义索引)和PCA的一个实现--SVD(Singular Value Decomposition,神秘值分解). 在SVD和LSI结束之后.关于PCA的内容就告一段落. 视频的后半段開始讲无监督学习的一种--IC

PCB SQL SERVER 枚举分割函数(枚举值分解函数)

在SQL SERVER字段采用枚举值作为字段后,如果直接查看字段的值是很难判断这个字段的带表什么意思, 在这里介绍如用函数的方法实现枚举值分割,只有分割后才很方便知道枚举值的意思. 一.问题说明 1.如下为:单个枚举值清单如下 十进制带表枚举的值,每个值带表对应的工厂 单枚举: 1带表P1工厂,2带表P2工厂     ----通过对应,一眼看到对应关系 叠加枚举: 3带表P1与P2工厂                     ----简单叠加枚举,难度增大了就是不容易找到对应关系 难度再加大一点

SVD(奇异值矩阵分解) 转载

http://www.cnblogs.com/LeftNotEasy/archive/2011/01/19/svd-and-applications.html 一.奇异值与特征值基础知识: 特征值分解和奇异值分解在机器学习领域都是属于满地可见的方法.两者有着很紧密的关系,我在接下来会谈到,特征值分解和奇异值分解的目的都是一样,就是提取出一个矩阵最重要的特征.先谈谈特征值分解吧: 1)特征值: 如果说一个向量v是方阵A的特征向量,将一定可以表示成下面的形式: 这时候λ就被称为特征向量v对应的特征值

GDI+_从Bitmap里得到的Color数组值分解

我之前写过一篇关于ARGB值的研究:https://www.cnblogs.com/lingqingxue/p/10362639.html 最近我又遇到关于ARGB的问题. 是这样的,我使用LockBits欲获取Bitmap里的所有ARGB数据,发现ARGB的值很奇怪. 例如 ARGB(255,0,2550) = -16711936 为什么等于-16711936? 会不会是十进制值呢? 在我上一篇上写到ARGB是由于 HEX A & HEX R & HEX G & HEX B 组成

随时更新———个人喜欢的关于模式识别、机器学习、推荐系统、图像特征、深度学习、数值计算、目标跟踪等方面个人主页及博客

目标检測.识别.分类.特征点的提取 David Lowe:Sift算法的发明者,天才. Rob Hess:sift的源代码OpenSift的作者,个人主页上有openSift的下载链接.Opencv中sift的实现.也是參考这个. Koen van de Sande:作者给出了sift,densesift,colorsift等等经常使用的特征点程序.输出格式见个人主页说明,当然这个特征点的算法,在Opencv中都有实现. Ivan Laptev:作者给出了物体检測等方面丰富C\C++源代码,及部

scikit-learn:通过Non-negative matrix factorization (NMF or NNMF)实现LSA(隐含语义分析)

之前写过两篇文章.各自是 1)矩阵分解的综述:scikit-learn:2.5.矩阵因子分解问题 2)关于TruncatedSVD的简介:scikit-learn:通过TruncatedSVD实现LSA(隐含语义分析) 今天发现NMF也是一个非常好非常有用的模型,就简介一下.它也属于scikit-learn:2.5.矩阵因子分解问题的一部分. NMF是还有一种压缩方法,前提是如果数据矩阵是非负的. 在数据矩阵不包括负值的情况下. NMF能够取代PCA及他的变形(NMF can be plugge

基于速度学习机的局部感受野

说明 基于速度学习机的局部感受野 摘要内容 引言部分 回想ELMCNN和HTM 极速学习机ELM ELM特征映射feature mapping ELM特征学习Learning 卷积神经网络CNN 卷积 池化 层级实时记忆HTM 基于局部感受野的极速学习机ELM-LRF A 全连接与局部连接Full and Local Connections B 基于局部感受野的ELM C 组合节点 局部感受野的实现 A ELM-LRF的特殊组合节点 B 随机输入权重 C 平方根池化squaresquare-ro

潜在语义分析Latent semantic analysis note(LSA)原理及代码

文章引用:http://blog.sina.com.cn/s/blog_62a9902f0101cjl3.html Latent Semantic Analysis (LSA)也被称为Latent Semantic Indexing(LSI),理解就是通过分析文档去发现这些文档中潜在的意思和概念. 如果每一个词仅表示一个概念.而且每一个概念只被一个词所描写叙述.LSA将很easy(从词到概念存在一个简单的映射关系) 不幸的是,这个问题并没有如此简单.由于存在不同的词表示同一个意思(同义词).一个

Mahout初步认识

Apache Mahout项目主要包括以下五个部分: 频繁模式挖掘:挖掘数据中频繁出现的项集. 聚类:将诸如文本.文档之类的数据分成局部相关的组. 分类:利用已经存在的分类文档训练分类器,对未分类的文档进行分类. 推荐引擎(协同过滤):获得用户的行为并从中发现用户可能喜欢的事务. 频繁子项挖掘:利用一个项集(查询记录或购物目录)去识别经常一起出现的项目. 在Mahout实现的机器学习算法: 算法类 算法名 中文名 分类算法 Logistic Regression 逻辑回归 Bayesian 贝叶