矩阵乘法的本质是什么?

矩阵乘法的本质是什么?

本文分为三节。可能谈不上本质,但确实很有助于直观地理解矩阵乘法,在此卖弄一小下,讲讲自己的浅薄理解,如有不对之处恳请批评指正。

本文阅读指南:

第一节、第三节在国内教材中似乎并不多见,建议细读。第二节我写的不是很清晰严谨,但介绍这方面内容的文章/课件在网上有很多,建议略读第二节之后另寻优秀材料。

第一节:线性组合——我曾经在那个很火的

2000年在MIT教的线性代数课上学到了对矩阵乘法的很好的理解方式。

第二节:空间投影——这是特征向量、PCA数据分析等内容的基础。

第三节:饥饿的大怪兽——一个纯粹基于求和公式的形象化理解,很多人应该自己都想到了。

========== 第 一 节 ==========

不严格地讲,两个“东西”a和b的线性组合是a的倍数加上b的倍数。比如,如果a和b是两个标量,那么就是a和b的一个线性组合,而就不是a和b的一个线性组合(但是它是和的一个线性组合)。

所以一个行向量和一个列向量相乘得到的,其实就是根据所描述的倍数对的各个元素进行线型组合。(当然你也可以理解为根据所描述的倍数对的元素进行线性组合,暂且按下不表。)

对矩阵的解读有很多种。为了下面对矩阵乘法的解读,我们可以把矩阵看做是几个列向量左右并排一起,

或者是几个行向量上下堆叠在一起

还记得课本上的分块矩阵矩阵的乘法吗?再结合上面“何为线型组合”中所说的“根据所描述的倍数对的各个元素进行线型组合”,这里其实就是根据的描述对矩阵中的列向量进行线型组合。

类似地,

是根据的描述,对矩阵中的行向量进行线型组合。

对于一个矩阵A和B相乘,还记得分块矩阵乘法这个定理吗?如果我们把A视为一个整块,把B按照列分为一块一块,那么我们可以得到

一个(被视为一坨列向量的)矩阵乘以一个列向量是什么含义,我们上面已经讲过了。

是由个列向量罗列而成的,对应着对中列向量种线型组合方式。那么就可以被视为根据的描述,对中的列向量进行多种线型组合。每一种线型组合得到一个列向量,我们要看看这多种不同的线型组合方式分别给了我们什么样的线型组合结果。

同理,

可以被视为根据的描述,对中的行向量进行多种线型组合。每一种线型组合得到一个行向量,我们要看看这多种不同的线型组合方式分别给了我们什么样的线型组合结果。

再看看其他知友的答案,比如一些关于线性空间、多元方程组、坐标系转换与旋转之类的,是不是本文的解释在特定应用环境下的解释?

========== 第 二 节 ==========

这一节我写的不是很清晰严谨,但介绍这方面内容的文章/课件在网上有很多,建议略读本节之后另寻优秀材料。

对于向量和单位向量相乘,可以看做是把投影到的方向上后得到的长度,是个标量。如果再乘以一个,得到的就是在的方向上的投影,是个矢量(向量)。

图片引自维基百科

上图中,的长度是1。

向量在向量上的投影的长度是。这是个标量哦。

如果想得到图中的绿色箭头,要再乘以单位向量来表明这个长度为的箭头到底指向哪个方向。即。

另外顺便提一句,向量和点乘,其实就是“行矩阵”乘以“列矩阵”。不明白的话在纸上简单推导一下就能看出来啦。

如果向量的长度不是1,那么求得的就是向量在方向上以为单位1投影所得到的长度。

向量,其实就是空间中的一个箭头。同一个箭头,在不同的向量空间(可理解为“不同的坐标系”)里,会有不同的数值来描述他。

一个向量空间由一组被称为“基底”(basis,简称“基”)的向量来描述,比如我们平时最常见的一种三位坐标系就可以看做是由、、三个“标准正交基”组成。(标准:长度为单位1;正交:两两垂直;基:向量;转置符号T表示列向量。)我们给这三个列向量命名为、、。在这个空间中的一个列向量分别投影到这三个方向上,分别得到的长度该如何计算呢?

看!我们并行地同时地计算了在三个方向上的投影长度!

如果这三个基向量分别是、、,那么矩阵乘以一个列向量

这就是在同时计算在、、方向上的投影长度。但需要注意的是,投影后的长度会有改变,因为和的长度并不是1了。

我们刚刚说过,一组基描述了一个空间。每次都说“由、、所描述的空间”太啰嗦了,干脆直接就说“由描述的向量空间”吧!……唔,一个矩阵描述了一个空间,有点意思了……

这个乘法操作其实是在问:对于(处在由所描述的空间里的)箭头,投影到由所描述的空间里,会用什么样的数值来呢?

这个问题等同于是在问:对于(处在由所描述的空间里的)箭头,投影到由所描述的空间里,在、、这三个基上的长度分别是多少呢?

求得的结果告诉了我们这个问题的答案:在空间里,箭头在方向上、以为单位一,长度为;在方向上、以为单位一,长度为;在方向上、以为单位一,长度为。(如果这段话没读明白,请先把这段话里所有的变量上标“撇”去掉后读一遍。)

简而言之:是箭头在空间/坐标系里的坐标值。

在这个坐标值是箭头在空间里的样子。在这个坐标值的指导下,我们该如何画出箭头(在原空间里的)的样子呢?答:这个箭头,它在上的分量是(别忘了这个分量只是标量,矢量是箭头在空间里的坐标表示);它在上的分量是;它在上的分量是。

所以,这个箭头(矢量)画出来就是。(想象一下物理力学里的分力/合力。)

等等,不对……由于和不是单位向量,其实在这两个分量上被scale了。所以正确的结果应该是,其中.

这个式子好复杂啊……等一下,积之和,这不是个线性组合吗?整理一下之后他就是 呐!

本节小结:

1.矩阵描述了一个空间。(通常要求矩阵里的向量是线性无关的,这一点很重要,但暂且不表)

2.把投影到了空间中,得到的是箭头在空间里的坐标。

3.是利用空间里的坐标,重新构建箭头在空间里的坐标。(如果里的向量不是单位向量,那么分量的长度会变化。同样,要求里的向量是一组有效的、线性无关的基。)

矩阵的好处是可以帮助我们适应“并行计算”。还是从分块矩阵的角度来看:

其中每一个在乘以的时候都不用担心受到其他行的干扰。看上面式子最右侧的结果,它的意思就是把依次投影到各个向量上。(复习:是一个标量吗?)

表示把向量投影到空间中。

这是在同时求多个列向量在空间里的投影。

========== 第 三 节 ==========

本节介绍几个杂七杂八的理解方式。以下的向量均为列向量。