2022年特征值分解与奇异值分解共享 .pdf
《2022年特征值分解与奇异值分解共享 .pdf》由会员分享,可在线阅读,更多相关《2022年特征值分解与奇异值分解共享 .pdf(10页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、特征值:一矩阵A 作用与一向量a,结果只相当与该向量乘以一常数 。即 A*a=a ,则 a为该矩阵A 的特征向量, 为该矩阵A 的特征值。奇异值:设 A为 m*n阶矩阵,AHA的 n 个特征值的非负平方根叫作A的奇异值。 记为i(A)上一次写了关于 PCA与 LDA的 文章, PCA 的实现一般有两种,一种是用特征值分解去实现的,一种是用 奇异值分解 去实现的。在上篇文章中便是基于特征值分解的一种解释。特征值和奇异值在大部分人的印象中,往往是停留在纯粹的数学计算中。而且线性代数或者矩阵论里面, 也很少讲任何跟特征值与奇异值有关的应用背景。 奇异值分解是一个有着很明显的物理意义的一种方法,它可以
2、将一个比较复杂的矩阵用更小更简单的几个子矩阵的相乘来表示,这些小矩阵描述的是矩阵的重要的特性。就像是描述一个人一样,给别人描述说这个人长得浓眉大眼,方脸,络腮胡,而且带个黑框的眼镜,这样寥寥的几个特征,就让别人脑海里面就有一个较为清楚的认识,实际上,人脸上的特征是有着无数种的,之所以能这么描述, 是因为人天生就有着非常好的抽取重要特征的能力,让机器学会抽取重要的特征, SVD是一个重要的方法。在机器学习领域,有相当多的应用与奇异值都可以扯上关系,比如做feature reduction的 PCA ,做数据压缩(以图像压缩为代表)的算法,还有做搜索引擎语义层次检索的LSI(Latent Sema
3、ntic Indexing)另外在这里抱怨一下,之前在百度里面搜索过SVD ,出来的结果都是俄罗斯的一种狙击枪( AK47同时代的),是因为穿越火线这个游戏里面有一把狙击枪叫做 SVD ,而在 Google 上面搜索的时候,出来的都是奇异值分解(英文资料为主)。想玩玩战争游戏,玩玩COD 不是非常好吗,玩山寨的CS有神马意思啊。 国内的网页中的话语权也被这些没有太多营养的帖子所占据。真心希望国内的气氛能够更浓一点,搞游戏的人真正是喜欢制作游戏,搞Data Mining 的人是真正喜欢挖数据的, 都不是仅仅为了混口饭吃, 这样谈超越别人才有意义, 中文文章中,能踏踏实实谈谈技术的太少了,改变这个
4、状况,从我自己做起吧。前面说了这么多,本文主要关注奇异值的一些特性,另外还会稍稍提及奇异值的计算, 不过本文不准备在如何计算奇异值上展开太多。另外,本文里面有部分不算太深的线性代数的知识,如果完全忘记了线性代数, 看本文可能会有些困难。一、奇异值与特征值基础知识:特征值分解和奇异值分解在机器学习领域都是属于满地可见的方法。两者有着很紧密的关系, 我在接下来会谈到, 特征值分解和奇异值分解的目的都是一样,就是提取出一个矩阵最重要的特征。先谈谈特征值分解吧:名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - -
5、 - - - 第 1 页,共 10 页 - - - - - - - - - 1 )特征值:如果说一个向量 v 是方阵 A的特征向量,将一定可以表示成下面的形式:这时候 就被称为特征向量v 对应的特征值, 一个矩阵的一组特征向量是一组正交向量 。特征值分解是将一个矩阵分解成下面的形式:其中 Q是这个矩阵 A的特征向量组成的矩阵, 是一个对角阵,每一个对角线上的元素就是一个特征值。 我这里引用了一些参考文献中的内容来说明一下。首先,要明确的是, 一个矩阵其实就是一个线性变换,因为一个矩阵乘以一个向量后得到的向量,其实就相当于将这个向量进行了线性变换。比如说下面的一个矩阵:它其实对应的线性变换是下面
6、的形式:因为这个矩阵 M乘以一个向量 (x,y) 的结果是:上面的矩阵是对称的, 所以这个变换是一个对x,y 轴的方向一个拉伸变换 (每一个对角线上的元素将会对一个维度进行拉伸变换,当值1时,是拉长,当值 1 时时缩短),当矩阵不是对称的时候,假如说矩阵是下面的样子:名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 2 页,共 10 页 - - - - - - - - - 它所描述的变换是下面的样子:这其实是在平面上对一个轴进行的拉伸变换(如蓝色的箭头所示),在图中,蓝色的箭头是一个最
7、 主要的 变化方向(变化方向可能有不止一个),如果我们想要描述好一个变换,那我们就描述好这个变换主要的变化方向就好了。反过头来看看之前特征值分解的式子,分解得到的 矩阵是一个对角阵, 里面的特征值是由大到小排列的, 这些特征值所对应的特征向量就是描述这个矩阵变化方向(从主要的变化到次要的变化排列)当矩阵是高维的情况下, 那么这个矩阵就是高维空间下的一个线性变换,这个线性变化可能没法通过图片来表示,但是可以想象, 这个变换也同样有很多的变换方向,我们通过特征值分解得到的前N个特征向量,那么就对应了这个矩阵最主要的 N个变化方向。我们利用这前 N个变化方向, 就可以近似这个矩阵(变换)。 也就 是
8、之前说的: 提取这个矩阵最重要的特征。总结一下,特征值分解可以得到特征值与特征向量,特征值表示的是这个特征到底有多重要,而特征向量表示这个特征是什么,可以将每一个特征向量理解为一个线性的子空间,我们可以利用这些线性的子空间干很多的事情。不过,特征值分解也有很多的局限,比如说变换的矩阵必须是方阵。(说了这么多特征值变换,不知道有没有说清楚,请各位多提提意见。) 2 )奇异值:下面谈谈奇异值分解。特征值分解是一个提取矩阵特征 很不错的方法,但是它只是对方阵而言的, 在现实的世界中,我们看到的大部分矩阵都不是方阵,比如说有 N个学生,每个学生有M科成绩,这样形成的一个N * M的矩阵就不可能是方阵,
9、我们怎样才能描述这样普通的矩阵呢的重要特征呢?奇异值分解可以用来干这个事情, 奇异值分解是一个能适用于任意的矩阵的一种分解的方法:名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 3 页,共 10 页 - - - - - - - - - 假设 A是一个 M * N 的矩阵, 那么得到的 U是一个 M * M的方阵(里面的向量是正交的, U里面的向量称为左奇异向量),是一个 M* N的矩阵(除了对角线的元素都是 0,对角线上的元素称为奇异值),V(V 的转置 ) 是一个 N * N的矩阵
10、,里面的向量也是正交的,V里面的向量称为右奇异向量),从图片来反映几个相乘的矩阵的大小可得下面的图片那么奇异值和特征值是怎么对应起来的呢?首先,我们将一个矩阵A的转置 * A ,将会得到一个方阵,我们用这个方阵求特征值可以得到:这里得到的 v,就是我们上面的 右奇异向量 。此外我们还可以得到:这里的 就是上面说的奇异值 ,u 就是上面说的左奇异向量。奇异值跟特征值类似,在矩阵 中也是从大到小排列,而且的减少特别的快, 在很多情况下,前 10% 甚至 1% 的奇异值的和就占了全部的奇异值之和的99% 以上了 。也就是说,我们也可以用前 r 大的奇异值来近似描述矩阵,这里定义一下部分奇异值分解 :
11、 r 是一个远小于 m 、n 的数,这样矩阵的乘法看起来像是下面的样子:名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 4 页,共 10 页 - - - - - - - - - 右边的三个矩阵相乘的结果将会是一个接近于A的矩阵,在这儿, r 越接近于 n,则相乘的结果越接近于A。而这三个矩阵的面积之和(在存储观点来说,矩阵面积越小,存储量就越小)要远远小于原始的矩阵A,我们如果想要压缩空间来表示原矩阵A,我们存下这里的三个矩阵:U、V就好了。二、奇异值的计算:奇异值的计算是一个难题,
12、是一个O(N3)的算法。在单机的情况下当然是没问题的, matlab 在一秒钟内就可以算出1000 * 1000 的矩阵的所有奇异值,但是当矩阵的规模增长的时候, 计算的复杂度呈3 次方增长,就需要并行计算参与了。Google 的吴军老师在 数学之美 系列谈到 SVD 的时候,说起 Google 实现了SVD的并行化算法,说这是对人类的一个贡献, 但是也没有给出具体的计算规模,也没有给出太多有价值的信息。其实 SVD还是可以用并行的方式去实现的,在解大规模的矩阵的时候,一般使用迭代的方法,当矩阵的规模很大(比如说上亿)的时候,迭代的次数也可能会上亿次,如果使用 Map-Reduce框架去解,则
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 2022年特征值分解与奇异值分解共享 2022 特征值 分解 奇异 共享
限制150内