科数网
首页
题库
试卷
学习
VIP
你好
游客,
登录
注册
在线学习
线性代数
第二篇 矩阵
一文让你通俗理解奇异值分解SVD
最后
更新:
2025-03-05 08:38
查看:
70
次
反馈
同步训练
一文让你通俗理解奇异值分解SVD
## 一文让你通俗理解奇异值分解SVD 特征值和奇异值在大部分人的印象中,往往是停留在纯粹的数学计算中。而且线性代数或者矩阵论里面,也很少讲任何跟特征值与奇异值有关的应用背景。 奇异值分解是一个有着很明显的物理意义的一种方法,它可以将一个比较复杂的矩阵用更小更简单的几个子矩阵的相乘来表示,这些小矩阵描述的是矩阵的重要的特性。就像是描述一个人一样,给别人描述说这个人长得浓眉大眼,方脸,络腮胡,而且带个黑框的眼镜,这样寥寥的几个特征,就让别人脑海里面就有一个较为清楚的认识,实际上,人脸上的特征是有着无数种的,之所以能这么描述,是因为人天生就有着非常好的抽取重要特征的能力,让机器学会抽取重要的特征,SVD是一个重要的方法。 在机器学习领域,有相当多的应用与奇异值都可以扯上关系,比如做feature reduction的PCA,做数据压缩(以图像压缩为代表)的算法,还有做搜索引擎语义层次检索的LSI(Latent Semantic Indexing) ## 特征值与奇异值 特征值分解和奇异值分解在机器学习领域都是属于满地可见的方法。两者有着很紧密的关系,接下来会谈到特征值分解和奇异值分解的目的都是一样,**就是提取出一个矩阵最重要的特征**。先谈特征值分解。 ### 特征值 如果说一个向量 v 是方阵 A 的特征向量,将一定可以表示成下面的形式: $$ A v=\lambda v $$ 这时候入就被称为特征向量 $v$ 对应的特征值,一个矩阵的一组特征向量是一组正交向量。特征值分解是将一个矩阵分解成下面的形式: $$ A=Q \Sigma Q^{-1} $$ 其中 $Q$ 是这个矩阵 $A$ 的特征向量组成的矩阵,$\Sigma$ 是一个对角阵,每一个对角线上的元素就是一个特征值。我这里引用了一些参考文献中的内容来说明一下。 首先,要明确的是,一个矩阵其实就是一个线性变换,因为一个矩阵乘以一个向量后得到的向量,其实就相当于将这个向量进行了线性变换。比如说下面的一个矩阵: $$ M=\left[\begin{array}{ll} 3 & 0 \\ 0 & 1 \end{array}\right] $$ 它其实对应的线性变换是下面的形式:  因为这个矩阵M乘以一个向量(x,y)的结果是: $$ \left[\begin{array}{ll} 3 & 0 \\ 0 & 1 \end{array}\right]\left[\begin{array}{l} x \\ y \end{array}\right]=\left[\begin{array}{c} 3 x \\ y \end{array}\right] $$ 上面的矩阵是对称的,所以这个变换是一个对 $x, ~ y$ 轴的方向一个拉伸变换(每一个对角线上的元素将会对一个维度进行拉伸变换,当值 $>1$ 时,是拉长,当值 $<1$ 时时缩短),当矩阵不是对称的时候,假如说矩阵是下面的样子: $$ M=\left[\begin{array}{ll} 1 & 1 \\ 0 & 1 \end{array}\right] $$ 它所描述的变换是下面的样子:  这其实是在平面上对一个轴进行的拉伸变换(如蓝色的箭头所示),在图中,蓝色的箭头是一个最主要的变化方向(变化方向可能有不止一个),如果我们想要描述好一个变换,那我们就描述好这个变换主要的变化方向就好了。反过头来看看之前特征值分解的式子,分解得到的Σ矩阵是一个对角阵,里面的特征值是由大到小排列的,这些特征值所对应的特征向量就是描述这个矩阵变化方向(从主要的变化到次要的变化排列)。 考虑更一般的非对称矩阵: $$ M=\left[\begin{array}{ll} 1 & 1 \\ 0 & 1 \end{array}\right] $$ 很遗憾,此时我们再也找不到一组网格,使得矩阵作用在该网格上之后只有拉伸变换(找不到背后的数学原因是对一般非对称矩阵无法保证在实数域上可对角化,不明白也不要在意)。 我们退而求其次,找一组网格,使得矩阵作用在该网格上之后允许有拉伸变换和旋转变换,但要保证变换后的网格依旧互相垂直,这是可以做到的,如下图所示。   简言之,当矩阵是高维的情况下,那么这个矩阵就是高维空间下的一个线性变换,这个变换也同样有很多的变换方向,我们通过特征值分解得到的前N个特征向量,那么就对应了这个矩阵最主要的N个变化方向。我们利用这前N个变化方向,就可以近似这个矩阵(变换)。 也就是之前说的:提取这个矩阵最重要的特征。总结一下,特征值分解可以得到特征值与特征向量,特征值表示的是这个特征到底有多重要,而特征向量表示这个特征是什么,可以将每一个特征向量理解为一个线性的子空间,我们可以利用这些线性的子空间干很多的事情。不过,特征值分解也有很多的局限,比如说变换的矩阵必须是方阵。 下面我们就可以自然过渡到奇异值分解的引入。 ## 奇异值 下面谈谈奇异值分解。特征值分解是一个提取矩阵特征很不错的方法,但是它只是对方阵而言的,在现实的世界中,我们看到的大部分矩阵都不是方阵,比如说有N个学生,每个学生有M科成绩,这样形成的一个N * M的矩阵就不可能是方阵,我们怎样才能描述这样普通的矩阵呢的重要特征呢?奇异值分解可以用来干这个事情,奇异值分解是一个能适用于任意的矩阵的一种分解的方法: $$ A=U \Sigma V^T $$ 假设A是一个 $N$*M的矩阵,那么得到的U是一个 $N$*$N$ 的方阵(里面的向量是正交的,U里面的向量称为左奇异向量),$\Sigma$ 是一个 $N$*$M$ 的矩阵(除了对角线的元素都是 0 ,对角线上的元素称为奇异值), $V ^{\prime}( V$ 的转置 $)$ 是一个 $N * N$ 的矩阵,里面的向量也是正交的, V 里面的向量称为右奇异向量),从图片来反映几个相乘的矩阵的大小可得下面的图片  那么奇异值和特征值是怎么对应起来的呢?首先,我们将一个矩阵A的转置$A^*$ ,将会得到一个方阵,我们用这个方阵求特征值可以得到: $$ \left(A^T A\right) v_i=\lambda_i v_i $$ 这里得到的 $v$ ,就是我们上面的右奇异向量。此外我们还可以得到: $$ \begin{aligned} \sigma_i & =\sqrt{\lambda_i} \\ u_i & =\frac{1}{\sigma_i} A v_i \end{aligned} $$ 这里的 $\sigma$ 就是上面说的奇异值,$u$ 就是上面说的左奇异向量。奇异值 $\sigma$ 跟特征值类似,在矩阵 $\Sigma$ 中也是从大到小排列,而且 $\sigma$ 的减少特别的快,在很多情况下,前 $10 \%$ 甚至 $1 \%$ 的奇异值的和就占了全部的奇异值之和的 $99 \%$ 以上了。也就是说,我们也可以用前 $r$ 大的奇异值来近似描述矩阵,这里定义一下部分奇异值分解: $$ A_{m \times n} \approx U_{m \times r} \Sigma_{r \times r} V_{r \times n}^T $$ $r$ 是一个远小于 $m, ~ n$ 的数,这样矩阵的乘法看起来像是下面的样子:  右边的三个矩阵相乘的结果将会是一个接近于A的矩阵,在这儿,r越接近于n,则相乘的结果越接近于A。而这三个矩阵的面积之和(在存储观点来说,矩阵面积越小,存储量就越小)要远远小于原始的矩阵A,我们如果想要压缩空间来表示原矩阵A,我们存下这里的三个矩阵:U、Σ、V就好了。 说句大白话,称作「奇异值」可能无法顾名思义迅速理解其本质,那咱们换个说法,称作「主特征值」,你可能就迅速了然了。 而奇异值分解的几何含义为:对于任何的一个矩阵,我们要找到一组两两正交单位向量序列,使得矩阵作用在此向量序列上后得到新的向量序列保持两两正交。 继续拿1.1节的例子进一步阐述,奇异值的几何含义为:这组变换后的新的向量序列的长度。   当矩阵 M 作用在正交单位向量 $v_1$ 和 $v_2$ 上之后,得到 $M v_1$ 和 $M v_2$ 也是正交的。令 $u_1$ 和 $u_2$ 分别是 $M v_1$ 和 $M v_2$ 方向上的单位向量,即 $M v_1=\sigma_1 u_1, ~ M v_2=\sigma_2 u_2$ ,写在一起就是 $M\left[\begin{array}{ll}v_1 & v_2\end{array}\right]=\left[\begin{array}{ll}\sigma_1 u_1 & \sigma_2 u_2\end{array}\right]$ ,然理得: $$ M=M\left[\begin{array}{ll} v_1 & v_2 \end{array}\right]\left[\begin{array}{c} v_1^{T} \\ v_2^{T} \end{array}\right]=\left[\begin{array}{ll} \sigma_1 u_1 & \sigma_2 u_2 \end{array}\right]\left[\begin{array}{l} v_1^{T} \\ v_2^{T} \end{array}\right]=\left[\begin{array}{ll} u_1 & u_2 \end{array}\right]\left[\begin{array}{cc} \sigma_1 & 0 \\ 0 & \sigma_2 \end{array}\right]\left[\begin{array}{c} v_1^{T} \\ v_2^{T} \end{array}\right] $$ 这样就得到矩阵 $M$ 的奇异值分解。奇异值 $\sigma_1$ 和 $\sigma_2$ 分别是 $M v_1$ 和 $M v_2$ 的长度。很容易可以把结论推广到一般 $n$ 维情形。 现在㕷们给出一个更简洁更直观的奇异值的几何意义。先来一段线性代数的推导。 假设知阵A的奇异值分解为 $$ A=\left[\begin{array}{ll} u_1 & u_2 \end{array}\right]\left[\begin{array}{ll} 3 & 0 \\ 0 & 1 \end{array}\right]\left[\begin{array}{l} v_1^{T} \\ v_2^{T} \en
免费注册看余下 50%
非VIP会员每天15篇文章,开通VIP 无限制查看
上一篇:
奇异值分解(SVD)介绍和可视化理解
下一篇:
矩阵思维导图
本文对您是否有用?
有用
(
0
)
无用
(
0
)
更多
学习首页
数学试卷
同步训练
投稿
题库下载
会议预约系统
数学公式
关于
科数网是专业专业的数学网站 版权所有 本站部分教程采用AI辅助生成,请学习时自行鉴别
如果页面无法显示请联系 18155261033 或 983506039@qq.com