特征值分解,奇异值分解(SVD)

特征值分解和奇异值分解在机器学习领域都是属于满地可见的方法。两者有着很紧密的关系,我在接下来会谈到,特征值分解和奇异值分解的目的都是一样,就是提取出一个矩阵最重要的特征。

1. 特征值:

如果说一个向量v是方阵A的特征向量,将一定可以表示成下面的形式:

写成矩阵形式:

这时候λ就被称为特征向量v对应的特征值,一个矩阵的一组特征向量是一组正交向量

2. 特征分解:

特征值分解是将一个矩阵分解成下面的形式:

其中Q是这个矩阵A的特征向量组成的矩阵,正交矩阵是可逆的。Σ?=?diag(λ1,?λ2,?...,?λn)是一个对角阵,每一个对角线上的元素就是一个特征值。

首先,要明确的是,一个矩阵其实就是一个线性变换,因为一个矩阵乘以一个向量后得到的向量,其实就相当于将这个向量进行了线性变换。

  当矩阵是高维的情况下,那么这个矩阵就是高维空间下的一个线性变换,这个线性变化可能没法通过图片来表示,但是可以想象,这个变换也同样有很多的变换方向,我们通过特征值分解得到的前N个特征向量,那么就对应了这个矩阵最主要的N个变化方向。我们利用这前N个变化方向,就可以近似这个矩阵(变换)。也就是之前说的:提取这个矩阵最重要的特征。总结一下,特征值分解可以得到特征值与特征向量,特征值表示的是这个特征到底有多重要,而特征向量表示这个特征是什么,可以将每一个特征向量理解为一个线性的子空间,我们可以利用这些线性的子空间干很多的事情。

  不过,特征值分解也有很多的局限,比如说变换的矩阵必须是方阵。

3. 奇异值分解

  特征值分解是一个提取矩阵特征很不错的方法,但是它只适用于方阵。而在现实的世界中,我们看到的大部分矩阵都不是方阵,比如说有M个学生,每个学生有N科成绩,这样形成的一个M * N的矩阵就可能不是方阵,我们怎样才能像描述特征值一样描述这样一般矩阵呢的重要特征呢?奇异值分解就是用来干这个事的,奇异值分解是一个能适用于任意的矩阵的一种分解的方法。

奇异值分解是一个能适用于任意的矩阵的一种分解的方法

    假设A是一个M * N的矩阵,那么得到的U是一个M * M的方阵(里面的向量是正交的,U里面的向量称为左奇异向量),Σ是一个M * N的实数对角矩阵(对角线以外的元素都是0,对角线上的元素称为奇异值),VT(V的转置)是一个N * N的矩阵,里面的向量也是正交的,V里面的向量称为右奇异向量),从图片来反映几个相乘的矩阵的大小可得下面的图片

那么奇异值和特征值是怎么对应起来的呢?首先,我们将一个矩阵A的转置 AT * A,将会得到 ATA 是一个方阵,我们用这个方阵求特征值可以得到:    这里得到的v,就是我们上面的右奇异向量。此外我们还可以得到:

这里的σi 就是就是上面说的奇异值,ui就是上面说的左奇异向量。

常见的做法是将奇异值由大而小排列。如此Σ便能由M唯一确定了。

  奇异值σ跟特征值类似,在矩阵Σ中也是从大到小排列,而且σ的减少特别的快,在很多情况下,前10%甚至1%的奇异值的和就占了全部的奇异值之和的99%以上了。也就是说,我们也可以用前r大的奇异值来近似描述矩阵,这里定义一下部分奇异值分解

r是一个远小于m、n的数,这样矩阵的乘法看起来像是下面的样子:

右边的三个矩阵相乘的结果将会是一个接近于A的矩阵,在这儿,r越接近于n,则相乘的结果越接近于A。而这三个矩阵的面积之和(在存储观点来说,矩阵面积越小,存储量就越小)要远远小于原始的矩阵A,我们如果想要压缩空间来表示原矩阵A,我们存下这里的三个矩阵:U、Σ、V就好了。

参考:

机器学习中的数学(5)-强大的矩阵奇异值分解(SVD)及其应用

时间: 2024-11-06 07:21:05

特征值分解,奇异值分解(SVD)的相关文章

特征值分解和SVD

特征值分解 如果说一个向量v是方阵A的特征向量,将一定可以表示成下面的形式: 这时候λ就被称为特征向量v对应的特征值,一个矩阵的一组特征向量是一组正交向量.特征值分解是将一个矩阵分解成下面的形式: 其中Q是这个矩阵A的特征向量组成的矩阵,Σ是一个对角阵,每一个对角线上的元素就是一个特征值.我这里引用了一些参考文献中的内容来说明一下.首先,要明确的是,一个矩阵其实就是一个线性变换,因为一个矩阵乘以一个向量后得到的向量,其实就相当于将这个向量进行了线性变换.比如说下面的一个矩阵: 它其实对应的线性变

自适应滤波:奇异值分解SVD

作者:桂. 时间:2017-04-03  19:41:26 链接:http://www.cnblogs.com/xingshansi/p/6661230.html 声明:欢迎被转载,不过记得注明出处哦~ [读书笔记10] 前言 广义逆矩阵可以借助SVD进行求解,这在上一篇文章已经分析.本文主要对SVD进行梳理,主要包括: 1)特征向量意义: 2)特征值分解与SVD: 3)PCA与SVD: 内容为自己的学习记录,其中多有借鉴他人之处,最后一并给出链接. 一.特征向量 第一反应是:啥是特征向量?为什

矩阵特征值分解与奇异值分解含义解析及应用

此文有一半转载自他出,主要在这进行个整理,具体内容文中都有相关的转载链接. 特征值与特征向量的几何意义 矩阵的乘法是什么,别只告诉我只是"前一个矩阵的行乘以后一个矩阵的列",还会一点的可能还会说"前一个矩阵的列数等于后一个矩阵的行数才能相乘",然而,这里却会和你说--那都是表象. 矩阵乘法真正的含义是变换,我们学<线性代数>一开始就学行变换列变换,那才是线代的核心--别会了点猫腻就忘了本--对,矩阵乘法 就是线性变换,若以其中一个向量A为中心,则B的作用

特征值分解和奇异值分解

特征值和奇异值在大部分人的印象中,往往是停留在纯粹的数学计算中.而且线性代数或者矩阵论里面,也很少讲任何跟特征值与奇异值有关的应用背景. 奇异值分解是一个有着很明显的物理意义的一种方法,它可以将一个比较复杂的矩阵用更小更简单的几个子矩阵的相乘来表示,这些小矩阵描述的是矩阵的重要的特性.就像是描述一个人一样,给别人描述说这个人长得浓眉大眼,方脸,络腮胡,而且带个黑框的眼镜,这样寥寥的几个特征,就让别人脑海里面就有一个较为清楚的认识,实际上,人脸上的特征是有着无数种的,之所以能这么描述,是因为人天生

矩阵的“特征值分解”和“奇异值分解”区别

在信号处理中经常碰到观测值的自相关矩阵,从物理意义上说,如果该观测值是由几个(如 K 个)相互统计独立的源信号线性混合而成,则该相关矩阵的秩或称维数就为 K,由这 K 个统计独立信号构成 K 维的线性空间,可由自相关矩阵最大 K 个特征值所对应的特征向量或观测值矩阵最大 K 个奇异值所对应的左奇异向量展成的子空间表示,通常称信号子空间,它的补空间称噪声子空间,两类子空间相互正交.理论上,由于噪声的存在,自相关矩阵是正定的,但实际应用时,由于样本数量有限,可能发生奇异,矩阵条件数无穷大,造成数值不

奇异值分解(SVD) --- 几何意义 (转载)

PS:一直以来对SVD分解似懂非懂,此文为译文,原文以细致的分析+大量的可视化图形演示了SVD的几何意义.能在有限的篇幅把 这个问题讲解的如此清晰,实属不易.原文举了一个简单的图像处理问题,简单形象,真心希望路过的各路朋友能从不同的角度阐述下自己对SVD实际意义的理 解,比如 个性化推荐中应用了SVD,文本以及Web挖掘的时候也经常会用到SVD. 原文:We recommend a singular value decomposition 关于线性变换部分的一些知识可以猛戳这里  奇异值分解(S

[机器学习笔记]奇异值分解SVD简介及其在推荐系统中的简单应用

本文先从几何意义上对奇异值分解SVD进行简单介绍,然后分析了特征值分解与奇异值分解的区别与联系,最后用python实现将SVD应用于推荐系统. 1.SVD详解 SVD(singular value decomposition),翻译成中文就是奇异值分解.SVD的用处有很多,比如:LSA(隐性语义分析).推荐系统.特征压缩(或称数据降维).SVD可以理解为:将一个比较复杂的矩阵用更小更简单的3个子矩阵的相乘来表示,这3个小矩阵描述了大矩阵重要的特性. 1.1奇异值分解的几何意义(因公式输入比较麻烦

数值分析之奇异值分解(SVD)篇

在很多线性代数问题中,如果我们首先思考若做SVD,情况将会怎样,那么问题可能会得到更好的理解[1].                                       --Lloyd N. Trefethen & David Bau, lll 为了讨论问题的方便以及实际中遇到的大多数问题,在这里我们仅限于讨论实数矩阵,注意,其中涉及到的结论也很容易将其扩展到复矩阵中(实际上,很多教材采用的是复矩阵的描述方式),另外,使用符号 x,y 等表示向量,A,B,Q等表示矩阵. 首先给出正交矩阵

(转)机器学习中的数学(5)-强大的矩阵奇异值分解(SVD)及其应用

版权声明: 本文由LeftNotEasy发布于http://leftnoteasy.cnblogs.com, 本文可以被全部的转载或者部分使用,但请注明出处,如果有问题,请联系[email protected] 前言: 上一次写了关于PCA与LDA的文章,PCA的实现一般有两种,一种是用特征值分解去实现的,一种是用奇异值分解去实现的.在上篇文章中便是基于特征值分解的一种解释.特征值和奇异值在大部分人的印象中,往往是停留在纯粹的数学计算中.而且线性代数或者矩阵论里面,也很少讲任何跟特征值与奇异值有