线性代数导论5——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分解,然后降维并构造语义空间。
线性代数导论5——SVD分解相关推荐
- 三阶矩阵的lu分解详细步骤_数学 - 线性代数导论 - #4 矩阵分解之LU分解的意义、步骤和成立条件...
线性代数导论 - #4 矩阵分解之LU分解的意义.步骤和成立条件 目前我们用于解线性方程组的方法依然是Gauss消元法.在Gauss消元法中,我们将右侧向量b与A写在一起作为一个增广矩阵进行同步的操作 ...
- 【线性代数】6-7:SVD分解(Singular Value Decomposition-SVD)
原文地址1:https://www.face2ai.com/Math-Linear-Algebra-Chapter-6-7转载请标明出处 Abstract: 本文介绍SVD,奇异值分解,应该可以算是本 ...
- 线性代数导论4——A的LU分解
线性代数导论4--A的LU分解 一.A=LA分解 消元的目的,只是为了更好正确的认识矩阵的概念,A=LU是最基础的矩阵分解.L是下三角矩阵,U是上三角矩阵.A通过消元最终得到U,L即A与U之间的联系. ...
- 机器学习笔记(二)矩阵和线性代数 例:用Python实现SVD分解进行图片压缩
线性代数基本只要是理工科,都是必修的一门课.当时学习的时候总是有一个疑惑,这个东西到底是干嘛用的?为什么数学家发明出这么一套方法呢,感觉除了解方程没发现有什么大用啊!但随着学习的深入,慢慢发现矩阵的应 ...
- 李宏毅线性代数笔记13:SVD分解
1 SVD分解介绍 之前用特征值来进行对角化的时候,被对角化的矩阵一定要是方阵,但是SVD的话,非方阵也是可以的. 矩阵Σ对角线上的元素都是大于等于0的 我们可以改变U,V的一些行和列,来达到Σ对角线 ...
- 线性代数(14): 对称矩阵与矩阵的SVD分解
文章目录 1 完美的对称矩阵 2 正交对角化 3 什么是奇异值 4 奇异值的几何意义 5 矩阵的奇异值分解(SVD) 6 在numpy中使用SVD分解 参考资料 注:转载请标明原文出处链接:https ...
- 线性代数笔记:矩阵的对角化、SVD分解及应用
矩阵的对角化.SVD分解及应用 矩阵的对角化.SVD分解及应用 矩阵运算的总结 矩阵对角化 SVD分解(奇异值分解) 应用 矩阵的对角化.SVD分解及应用 许多数学对象可以通过将它们分解成多个组成部分 ...
- 奇异值(Singular value decomposition SVD)分解
本文摘自两篇博客,感谢博主分享 一.原文地址:http://blog.csdn.net/wangzhiqing3/article/details/7446444 SVD分解 SVD分解是LSA的数学基 ...
- 机器学习相关——SVD分解
前面写了个简单的线性代数系列文章,目的就是让大家在接触SVD分解前,先了解回忆一下线性代数的基本知识,有助于大家理解SVD分解.不至于一下被大量的线性代数操作搞晕.这次终于开始正题--SVD的介绍了. ...
最新文章
- 【Qt】QT_BEGIN_NAMESPACE 和 QT_END_NAMESPACE
- 数据结构习题精解 C语言实现+微课视频(习题解答、研考试题、微课视频)
- 机器人视觉——图像读入、显示与保存
- 手把手教你Homestead安装,并填坑!!
- Ubuntu与 Fedora之对比
- 焊接空间臂_焊接烟尘净化器设备哪种好
- 多软件启动器 v1.0
- epoll浅析以及nio中的Selector
- 黑马程序员 oc中的类与对象
- Linux shell__文件操作
- RISC_V芯片架构
- 科研常用到的计算机编程,科研必备:几款好用的流程图工具,助力你的论文/科研绘图...
- Mac 如何消除系统更新小红点
- 关于计算机的英语谜语,英语的谜语大全及答案
- python \xe6\xb5解码
- eclipse平台的手机程序开发步骤整理
- 移动共享开发(二)各平台SSO(免登录)配置 微信和微信朋友圈、QQ、QQ空间、新浪微博、腾讯微博、人人
- 协变逆变java_Java中的协变与逆变
- 注册表编辑器导入、导出注意事项
- js判断是否获得焦点
热门文章
- XCTF_Web_新手练习区:get_post
- haarcascade_frontalface_default.xml等文件
- script id=tp type=text/html,demo.html
- vue.config.js多页配置
- 人工机器:jetsonnano推理时出现 Segmentation fault(core dumped)
- AI:IPPR的数学表示-CNN稀疏结构进化(Mobile、xception、Shuffle、SE、Dilated、Deformable)
- 图方法:二分无向图的联通子图查找
- Caffe+Kubuntu16.04_X64+CUDA 8.0配置
- Python二分查找算法
- [BZOJ 2957]楼房重建(线段树)