奇异值分解(SVD)小结

目录

阵的简单理解

矩阵作用于向量

用矩阵的表达一个实体

特征值和特征向量

奇异值分解

Hermitian矩阵

共轭转置

酉矩阵

谈谈《数学之美》对SVD的理解


阵的简单理解

矩阵从我的理解来看,可以从两个角度来看。一个是矩阵是作用于向量,一个是矩阵表达一个实体。

矩阵作用于向量

对于线性空间中,对向量的变换就是通过矩阵对向量的作用来实现的,矩阵本身就表示着一种变换。假设目前所讨论的矩阵是非奇异的奇异值分解(SVD)小结阶方阵。对矩阵对向量的变换,可以从两个不同的角度来看:一、从同一个坐标系来看,矩阵对向量的变换就是伸缩或者旋转。二、同一个向量,在不同坐标系下的度量。比如:

                                                                                             奇异值分解(SVD)小结

1、从第一个角度来看就是,向量奇异值分解(SVD)小结经过矩阵奇异值分解(SVD)小结的作用变成了向量奇异值分解(SVD)小结,矩阵表示一种运行方式。


2、从第二个角度来看就是,那么矩阵奇异值分解(SVD)小结就表示着一个坐标系(因为非奇异,故矩阵奇异值分解(SVD)小结是有奇异值分解(SVD)小结个线性无关的向量组成),奇异值分解(SVD)小结就是在坐标系奇异值分解(SVD)小结下的一个度量结果,只不过这里的矩阵奇异值分解(SVD)小结不一定是单位矩阵,所以坐标轴上度量单位不一定是单位1。而向量奇异值分解(SVD)小结是单位矩阵奇异值分解(SVD)小结所表示的坐标系下的度量结果。即:奇异值分解(SVD)小结

由上式可以看的出,一个向量,他在坐标系奇异值分解(SVD)小结中的表示结果是向量奇异值分解(SVD)小结,它在坐标系奇异值分解(SVD)小结中的表示结果是向量奇异值分解(SVD)小结,这表明什么?向量x和向量b,表示的是同一个向量,只不过是在不同的坐标系下,每个向量的度量结果不一样而已,即表现形式不同,但本质是一个东西。

我们知道一个向量在不同基下的坐标是不一样的,即向量在不同空间的测量结果是不一样的。如果举一个不恰当的例子,比如水,在零度以下是冰,在100度以上是水蒸气,你可以这样理解,水在0度的环境下的表现形式是冰,在100度的环境下的表现形式是水蒸气,他们只不过存在形式不同,但都是奇异值分解(SVD)小结。那么矩阵是不是也可以看成向量所处的环境呢?(我们目前都是假设矩阵是非奇异的),我想是可以的。无论是把矩阵看成是向量所处环境也好,还是看成空间坐标系也好,不可否认的是,矩阵包含着度量的能力,他可以表达一种空间信息,此时矩阵表示一种度量方式。

由此矩阵作用于向量或者矩阵,可以把矩阵看成是动态的形式。

用矩阵的表达一个实体

一副图像在计算时,它是以一个矩阵的形式表达的;在NLP中,文本与词的关系,也是以矩阵的形式存在的。此时矩阵奇异值分解(SVD)小结表达一个具体的事物,此时矩阵就是一种静态的表示结果。

啰里啰嗦了那么多,就是为了加深理解矩阵的意义,矩阵在不同的情况下,其作用是不一样的。


特征值和特征向量

如果奇异值分解(SVD)小结是n阶方阵,如果存在一个非零的常数奇异值分解(SVD)小结和一个n维的向量奇异值分解(SVD)小结使得:奇异值分解(SVD)小结,则称奇异值分解(SVD)小结是矩阵奇异值分解(SVD)小结的特征值,奇异值分解(SVD)小结就是其对应的特征向量。翻译成白话就是:如果矩阵奇异值分解(SVD)小结使得一个向量伸缩,那么该向量就是矩阵奇异值分解(SVD)小结 的一个特征向量,伸缩的尺度就是特征值。

如果你觉得矩阵表达运动时比较好理解,那么特征向量就是,各个分运动的方向,对应的特征值,就是运动的距离。如果你觉得矩阵作为表达实体时比较好理解,那么特征向量,就是该实体的某一特征,对应的特征值就是该特征的重要程度。

尤其是矩阵表达一个实体时,矩阵的特征分解显得尤为重要,因为此时的矩阵往往是稀疏的,维度比较大的,在存储或者计算时会浪费很多资源,此时特征值和特征向量的作用就显得尤为重要了,我们可以选择几个特征值最大的向量,就可以表达该实体,这样就可以对原来的矩阵起到了很好的降维作用,而且可以消除很多噪声。可以参考这个例子 。

奇异值分解

之前说的方阵都是n阶方阵,那么对于机器学习中很多时候面对的矩阵都是奇异值分解(SVD)小结的,这个时候,我们也想跟方阵一样找出对应的特征值和特征向量,那么有什么方法?答案就是奇异值分解,此时的奇异值就是对应n阶方阵的特征值,只不过此时不再称呼特征值和特征向量了,因为解法不同以及分解出来的矩阵表达的意义也不同。在说奇异值分解之前,先交代两个概念。Hermitian矩阵和酉矩阵。


Hermitian矩阵

如果奇异值分解(SVD)小结阶复方阵奇异值分解(SVD)小结是对称的,且对称单元互为共轭,即,矩阵奇异值分解(SVD)小结的共轭转置矩阵等于它本身,称奇异值分解(SVD)小结为Hermitian矩阵。例如:

                                                                                       奇异值分解(SVD)小结

共轭转置

矩阵有实数矩阵和复数矩阵。转置矩阵仅仅是将矩阵的行与列对换,而共轭转置矩阵在将行与列对换后还要让每个元素共轭一下。共轭,就是将形如a+bi的数变成a-bi,实数的共轭是它本身。

故,实数矩阵的共轭转置矩阵就是转置矩阵,复数矩阵的共轭转置矩阵就是上面所说的行列互换后每个元素取共轭

酉矩阵

我们说的正交矩阵是属于奇异值分解(SVD)小结的,是实数域上的。那么推广到复数域:

假设奇异值分解(SVD)小结,奇异值分解(SVD)小结为复数域,若:

                                                                            奇异值分解(SVD)小结

则称奇异值分解(SVD)小结就是酉矩阵。


定理:令奇异值分解(SVD)小结,则存在正交矩阵(或者酉矩阵)奇异值分解(SVD)小结奇异值分解(SVD)小结,使得:

                                                                                  奇异值分解(SVD)小结

其中奇异值分解(SVD)小结,且奇异值分解(SVD)小结,其对角线元素是按照从大到小的顺序排列的,即,奇异值分解(SVD)小结奇异值分解(SVD)小结

现在证明这个定理是怎么来的,为了方便理解,先交代几个引理。

引理一、Hermitian矩阵奇异值分解(SVD)小结可酉对角化,且特征值是非负的。

引理二、奇异值分解(SVD)小结

引理三、奇异值分解(SVD)小结的充要条件是奇异值分解(SVD)小结


证明奇异值分解(SVD)小结


奇异值分解(SVD)小结,根据引理一和引理二,可知奇异值分解(SVD)小结可以酉对角化,且奇异值分解(SVD)小结,那么存在一个奇异值分解(SVD)小结阶的酉矩阵奇异值分解(SVD)小结使得:

                                                          奇异值分解(SVD)小结

即:奇异值分解(SVD)小结,其中奇异值分解(SVD)小结奇异值分解(SVD)小结的非负特征根。

奇异值分解(SVD)小结,我们把酉矩阵奇异值分解(SVD)小结拆分成两个子矩阵奇异值分解(SVD)小结奇异值分解(SVD)小结,有:

                                                                                        奇异值分解(SVD)小结

                                                                                        奇异值分解(SVD)小结

易知,奇异值分解(SVD)小结,根据引理三可知奇异值分解(SVD)小结

则有

                                                                          奇异值分解(SVD)小结

由于奇异值分解(SVD)小结是对角矩阵,故,奇异值分解(SVD)小结奇异值分解(SVD)小结由此可得:

                                                                         奇异值分解(SVD)小结

                                                                         奇异值分解(SVD)小结

                                                                          奇异值分解(SVD)小结

奇异值分解(SVD)小结,则有:奇异值分解(SVD)小结。我们构造一个酉矩阵奇异值分解(SVD)小结,使得奇异值分解(SVD)小结,也就是各向量之间是相互正交的,然拼接成和酉矩阵奇异值分解(SVD)小结同等规模的酉矩阵奇异值分解(SVD)小结

                                                                        奇异值分解(SVD)小结

                                                                                    奇异值分解(SVD)小结

                                                                                    奇异值分解(SVD)小结

                                                                                    奇异值分解(SVD)小结

奇异值分解(SVD)小结,证毕。


我们对酉矩阵奇异值分解(SVD)小结进行奇异值分解,同理可以得出:

                                                                              奇异值分解(SVD)小结

我们已经知道对奇异值分解(SVD)小结的奇异值分解为:

                                                                             奇异值分解(SVD)小结

如果矩阵奇异值分解(SVD)小结的秩是奇异值分解(SVD)小结,则有:

奇异值分解(SVD)小结酉矩阵奇异值分解(SVD)小结的前奇异值分解(SVD)小结列组成矩阵奇异值分解(SVD)小结的列空间的标准正交基。

奇异值分解(SVD)小结酉矩阵奇异值分解(SVD)小结的前奇异值分解(SVD)小结列组成矩阵奇异值分解(SVD)小结的行空间(或者奇异值分解(SVD)小结的列空间)的标准正交基。

U的后奇异值分解(SVD)小结列组成矩阵奇异值分解(SVD)小结的零空间的标准正交基。

奇异值分解(SVD)小结的后奇异值分解(SVD)小结列组成矩阵A的零空间的标准正交基。

我们之前说过,奇异值分解,就是为了找到最重要的特征,用这些特征来表示原来的矩阵,这样可以起到降维的作用,也可以起到消除噪声的作用。那么,当矩阵奇异值分解(SVD)小结的秩奇异值分解(SVD)小结时,由于奇异值奇异值分解(SVD)小结,因此矩阵奇异值分解(SVD)小结的奇异值分解就可以写成:

                                                                                      奇异值分解(SVD)小结

这种情况就称为矩阵奇异值分解(SVD)小结的截尾奇异值分解。

但是大多数的时候,有些奇异值不为0对应的特征向量我们也会舍弃,只会选取以少部分,就是大家常说的前10%甚至1%的奇异值会占总的奇异值的99%。如下图所示:

奇异值分解(SVD)小结


谈谈《数学之美》对SVD的理解

首先说明一下,吴军老师在数学之美讲解SVD的时候,有点是描述错误的,可能版本比较老,新版不知是否已经更正。在这里叙述时,会更正。

假如对新闻进行分类,把词和文本放到一个矩阵中,可以利用余弦定理来计算相似性;还可以利用对矩阵直接进行SVD分解一次解决。

矩阵奇异值分解(SVD)小结描述了词和文章的关联性,每一行代表一个词,每一列代表一篇文章,如果有奇异值分解(SVD)小结个词,奇异值分解(SVD)小结篇文章,那么对应的矩阵如下:

奇异值分解(SVD)小结

其中第奇异值分解(SVD)小结行第奇异值分解(SVD)小结列的元素奇异值分解(SVD)小结表示,字典中第奇异值分解(SVD)小结个单词出现在第奇异值分解(SVD)小结篇文章中的加权词频(如TF-IDF),那么被分解的三个小矩阵:

奇异值分解(SVD)小结

  • 第一个矩阵奇异值分解(SVD)小结,表示对词进行分类的一个结果。矩阵奇异值分解(SVD)小结奇异值分解(SVD)小结的特征向量组成的矩阵,奇异值分解(SVD)小结奇异值分解(SVD)小结的,奇异值分解(SVD)小结的,表示的就是词与词之间的关系。奇异值分解(SVD)小结奇异值分解(SVD)小结的一个基,它可以表示词与词之间的空间分布,也就是语义相近与否,所以我们分解出来的第一个矩阵奇异值分解(SVD)小结就是对词进行的分类结果。它的每一行表示一个词,每一列表示一个语义相近的词类。每个非零元素表述该词在相应语义中的相关性(重要性),数值越大越相关。
  • 最后一个矩阵奇异值分解(SVD)小结,表示是对文本的一个分类结果。矩阵奇异值分解(SVD)小结奇异值分解(SVD)小结的特征向量组成的空间,奇异值分解(SVD)小结奇异值分解(SVD)小结的,文章奇异值分解(SVD)小结文章,表示的是文章与文章之间的关系,它的每一列表示一篇文章,每一行表示一个主题,这一列中的每个元素表示在不同主题中的相关性。
  • 第二个矩阵,表示词的语义类和文章的主题之间的关系。如下面这个矩阵:

                                                                                  奇异值分解(SVD)小结

在矩阵奇异值分解(SVD)小结中,每一行表示一个语义,每一列表示一个主题。每一行的每个元素,表示该语义与主题之间的关系。0.7表示第一个语义与第一个主题相关,0.21表示第一个语义与第二个主题不相关。同理,0.18表示第二个语义与第一个主题不相关,0.63表示第二个语义与第二个主题相关。

到此SVD讲解完成,从理论到实际的物理意义,花了近两天的复习和总结,啰里啰嗦了这么多,也不知道是否阐述的明白。如有错误,欢迎指正。

 

参考:

《理解矩阵》孟岩

《数学之美》吴军

《矩阵分析》张贤达