线性代数篇答疑和总结:矩阵乘法的几何意义是什么?
线性代数篇答疑和总结:矩阵乘法的几何意义是什么?
本文深入探讨了矩阵乘法的几何意义,以及SVD中$X'X$的特征向量组成了$V$矩阵,而$XX'$的特征向量组成了$U$矩阵。首先,通过对二维空间中的正交向量和矩阵乘法的几何意义进行详细解释,阐述了矩阵左乘所对应的几何意义。其次,通过实例验证了矩阵左乘的几何意义,以及对矩阵的特征值和特征向量进行分析。接着,通过SVD分解中的$U$和$V$矩阵的证明,阐述了$X'X$的特征向量组成了$V$矩阵,而$XX'$的特征向量组成了$U$矩阵的过程。最后,总结了矩阵左乘矩阵的几何意义,以及SVD分解中的$U$和$V$矩阵的相关内容。
线性代数是机器学习和数据科学的基础,其中矩阵乘法的几何意义和SVD分解是两个核心概念。本文将从矩阵乘法的几何意义出发,深入探讨SVD分解中U和V矩阵的形成过程,并对整个线性代数模块进行总结。
矩阵乘法的几何意义
首先,我们来说说矩阵乘法所代表的几何意义。在阐述PCA主成分分析的时候,我们聊过为什么这个方法要研究协方差矩阵的特征值和特征向量。其中,我提到对某个向量左乘一个矩阵,实际上是对这个向量进行了一次变换。某个矩阵的特征向量表示了这个矩阵在空间中的变换方向,这些方向都是正交或者趋于正交的,而特征值表示每个方向上伸缩的比例。今天,我会继续深入这个话题,结合实例,给出更详细地解释。
多维的向量空间很难理解,所以我们还是从最简单的二维空间开始。首先,我们需要明白什么是二维空间中的正交向量。正交向量的定义非常简单,只要两个向量的点乘结果为0,那么它们就是正交的。在酉矩阵之中,矩阵和矩阵的转置相乘为单位矩阵,只有向量自己点乘自己值为1,而不同向量之间点乘值为0,所以不同的向量之间是正交的。
理解了正交向量之后,我们来定义一个二维空间,这个空间的横坐标为x,纵坐标为y,空间中的一个点坐标为(1,2),对于这个点,我们可以把从原点到它的直线投影到x轴和y轴,这个直线在x轴上投影的长度为1,在y轴上投影的长度为2。使用下图来表示。
对于这个点,我们使用一个矩阵X1左乘这个点的坐标,你可以看看会发生什么。
我们把结果转成坐标系里的点,它的坐标是(3,4),把从原点到(1,2)的直线,和从原点到(3,4)的直线进行比较,你会发现直线发生了旋转,而且长度也发生了变化,这就是矩阵左乘所对应的几何意义。我们还可以对这个矩阵X1分析一下,看看它到底表示了什么含义,以及为什么它会导致直线的旋转和长度发生变化。
之前讲过,要看一个矩阵的特征,需要分析它的特征向量和特征值。由于矩阵X1是一个对角矩阵,所以特征值很容易求解,分别是3和2。而对应的特征向量是[1,0]和[0,1]。在二维坐标中,坐标[1,0]实际上表示的是x轴的方向,而[0,1]实际上表示的是y轴的方向。特征值3对应特征向量[1,0]就表明在x轴方向拉伸为原来的3倍,特征值2对应特征向量[0,1]就表明在y轴方向拉伸2倍。所以,矩阵X1的左乘,就表示把原有向量在x轴上拉伸为原来的3倍,而在y轴上拉伸为原来的2倍。用下面这张图来展示。
我们还可以从另一个角度来验证这点,把从原点到(3,4)的直线进行分解,我们会发现这个直线在x轴上投影的长度为3,为原来的3倍,而在y轴上投影的长度为4,为原来的2倍。
当然,矩阵的特征向量不一定是x轴和y轴,它们可以是二维空间中任何相互正交的向量。下面,我们再来看一个稍微复杂一点的例子。这次我们从两个正交的向量开始。
使用下面这张图展示了这两个向量在空间的方向。
然后用这两个向量构建一个矩阵V。
之所以使用这样一个例子,是因为V是一个酉矩阵,也就是说VV'=I,所以我们可以使用它,外加一个特征值组成的对角矩阵Σ,来构建另一个用于测试的矩阵X2。我在SVD的那一讲,介绍过对称方阵可以进行特征值分解,所以我们可以通过V和Σ,获得一个对称方阵X2=VΣV'。
我们假设两个特征值分别是0.5和2,所以有:
弄清楚了矩阵左乘向量的几何意义,那么矩阵左乘矩阵的几何意义也就不难理解了。假设我们让矩阵X左乘矩阵Y,那么可以把右矩阵Y看作一堆列向量的集合,而左乘矩阵X就是对每个Y中的列向量进行变换。另外,如果二维空间理解了,那么三维、四维直到n维空间就可以以此类推了。
SVD分解中的U和V矩阵
在讲解SVD奇异值分解的时候,我们解释了X'X的特征向量组成了SVD中的V矩阵,而XX'的特征向量组成了SVD中的U矩阵。不过,我们还没有证明这两点。今天我来说说如何证明它们。首先,我们来看看V矩阵的证明。
从这个证明的过程,我们也发现了,XX'或者X'X特征值矩阵等于奇异值矩阵的平方,也就是说我们可以通过求出X'X特征值的平方根来求奇异值。
总结
回答完两个问题之后,来总结一下线性代数这个模块。
线性代数最基本的概念包括了向量、矩阵以及对应的操作。向量表示了一组数的概念,非常适合表示一个对象的多维特征,因此被广泛的运用在信息检索和机器学习的领域中。而矩阵又包含了多个向量,所以适合表示多个数据对象的集合。同时,矩阵也可以用于表达二维关系,例如网页的邻接矩阵,用户对物品的喜好程度,关键词在文档中的tf-idf等等。
由于向量和矩阵的特性,我们可以把它们运用在很多算法和模型之中。向量空间模型定义了向量之间的距离或者余弦夹角,我们可以利用这些指标来衡量数据对象之间的相似程度,并把这种相似程度用于定义查询和文档之间的相关性,或者是文档聚类时的归属关系。矩阵的运算体现了对多个向量同时进行的操作,比如最常见的左乘,就可以用在计算PageRank值,协同过滤中的用户或者物品相似度等等。
当然,矩阵的运用还不只计算数据对象之间的关系。最小二乘法的实现、PCA主成分的分析、SVD奇异值的分解也可以基于矩阵的运算。这些都可以帮助我们发现不同维度特征之间的关系,并利用这些关系找到哪些特征更为重要,选择或者创建更为重要的特征。
有的时候,线性代数涉及的公式和推导比较繁琐。在思考的过程中,我们可以把矩阵的操作简化为向量之间的操作,而把向量之间的操作简化为多个变量之间的运算。另外,我们可以多结合实际的案例,结合几何空间、动手推算,甚至可以编程实现某些关键的模块,这些都有利于理解和记忆。