如何理解矩阵相乘的几何意义或现实意义?

  • Post author:
  • Post category:其他


作者:deng will

链接:https://www.zhihu.com/question/28623194/answer/135658852

来源:知乎

著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

这个问题我也思考了许久,如何从高中的知识过度到大学的线代知识,偶然间看到一篇文章再结合MIT的线代和国内的西工大的矩阵论的一小撮知识,终于把这个问题可以详细的写出来了,达到知其所以然。(欢迎大家指正错误)

我们先来看一个高中就学过的向量运算:内积。A=(x1,y1),B=(x2,y2),如下图所示

<img src="https://pic4.zhimg.com/50/8d64151ceed0eed4d4708d8d9e6374dc_hd.jpg" data-rawwidth="598" data-rawheight="593" class="origin_image zh-lightbox-thumb" width="598" data-original="https://pic4.zhimg.com/8d64151ceed0eed4d4708d8d9e6374dc_r.jpg">

好,我们从A点向B所在直线引一条垂线,我们知道垂线与B的交点叫做A在B上的投影,不过我们如果将内积表示为另一种我们熟悉的形式:
A*B=|A||B||cos(a)|
,我们可以看到A与B的内积等于A到B的投影长度乘以B的模,再进一步,令|B|=1,那么就变成了
A*B=|A||cosa|


我们继续在二维空间讨论向量,一个向量(3,2)本身是不能精确表示一个向量的,实际上隐含了再X轴投影为3而Y轴的投影为2,更正式的,向量(x,y)实际上可以表示为<img src="https://pic3.zhimg.com/50/4533331b5b4b5ea98c90f2abed81d470_hd.jpg" data-rawwidth="598" data-rawheight="594" class="origin_image zh-lightbox-thumb" width="598" data-original="https://pic3.zhimg.com/4533331b5b4b5ea98c90f2abed81d470_r.jpg">

X*\left( \begin{array}{ccc}1 \\0 \end{array}\right) +X*\left( \begin{array}{ccc}0 \\1 \end{array}\right)
,此处(1,0)和(0,1)叫做二维空间的一组基。

我们之所以默认选择(1,0)和(0,1)为基,当然是比较方便,因为它们分别是x和y轴正方向上的单位向量,因此就使得二维平面上点坐标和向量一一对应,非常方便。但实际上任何两个线性无关的二维向量都可以成为一组基,所谓线性无关在二维平面内可以直观认为是两个不在一条直线上的向量。

例如,(1,1)和(-1,1)也可以成为一组基。一般来说,我们希望基的模是1,因为从内积的意义可以看到,如果基的模是1,那么就可以方便的用向量点乘基而直接获得其在新基上的坐标了!实际上,对应任何一个向量我们总可以找到其同方向上模为1的向量,只要让两个分量分别除以模就好了。例如,上面的基可以变为下图所示,
(\frac{1}{\sqrt{2} }, \frac{1}{\sqrt{2} })

(-\frac{1}{\sqrt{2} }, \frac{1}{\sqrt{2} })
(注:基都为列向量,这是遵循MIT教授的课上的建议,但是为了表示方便,我混用了。)现在我们想获得(3,2)在新基上的坐标,即在两个方向上的投影矢量值。

根据程云鹏的矩阵论11页上的定义:设x1,x2,…,xn是Vn的旧基,y1,y2,…,yn为其新基,则由基的定义可以写为(y1,y2,…,yn)=(x1,x2,…,xn)C(此处y和x均为列向量),

<img src="https://pic3.zhimg.com/50/v2-792e7958dd784ec8a91abb6344342a9c_hd.jpg" data-rawwidth="639" data-rawheight="362" class="origin_image zh-lightbox-thumb" width="639" data-original="https://pic3.zhimg.com/v2-792e7958dd784ec8a91abb6344342a9c_r.jpg">

其中C称之为过渡矩阵

所以我们有Y=X*C,其中Y为
\left( \begin{array}{ccc}\frac{1}{\sqrt{2} } &-\frac{1}{\sqrt{2} } \\\frac{1}{\sqrt{2} }&\frac{1}{\sqrt{2} }\end{array}\right)
,X为
\left( \begin{array}{ccc}1&0 \\0&1 \end{array}\right)
,可得C为
\left( \begin{array}{ccc}\frac{1}{\sqrt{2} } &-\frac{1}{\sqrt{2} } \\\frac{1}{\sqrt{2} }&\frac{1}{\sqrt{2} }\end{array}\right)

<img src="https://pic4.zhimg.com/50/ff47d66fa67d12918e4e83678fa6b78d_hd.jpg" data-rawwidth="598" data-rawheight="595" class="origin_image zh-lightbox-thumb" width="598" data-original="https://pic4.zhimg.com/ff47d66fa67d12918e4e83678fa6b78d_r.jpg">

那么根据程云鹏的矩阵论书中,坐标在新基中的表示为
C^{-1}*\left( \begin{array}{ccc}3 \\2 \end{array}\right)
=
\left( \begin{array}{ccc}\frac{5}{\sqrt{2} }  \\-\frac{1}{\sqrt{2} } \end{array}\right)

我们可以看到C明显为正交矩阵,正交矩阵的性质为


正交矩阵的逆等于其转置

,所以本来C的第一列为基,求逆矩阵之后变成C的第一行为基。

所以推导出下面这个式子。


一般的,如果我们有M个N维向量,想将其变换为由R个N维向量表示的新空间中,那么首先将R个基按行组成矩阵A,然后将向量按列组成矩阵B,那么两矩阵的乘积AB就是变换结果,其中AB的第m列为A中第m列变换后的结果



数学表示为:<img src="https://pic1.zhimg.com/50/v2-aca27e96cfa51d1b0fcb265d9918ad83_hd.jpg" data-rawwidth="771" data-rawheight="179" class="origin_image zh-lightbox-thumb" width="771" data-original="https://pic1.zhimg.com/v2-aca27e96cfa51d1b0fcb265d9918ad83_r.jpg">

特别要注意的是,这里R可以小于N,而R决定了变换后数据的维数。也就是说,我们可以将一N维数据变换到更低维度的空间中去,变换后的维度取决于基的数量。因此这种矩阵相乘的表示也可以表示降维变换。

最后,上述分析同时给矩阵相乘找到了一种物理解释:

两个矩阵相乘的意义是将右边矩阵中的每一列列向量变换到左边矩阵中每一行行向量为基所表示的空间中去

。更抽象的说,一个矩阵可以表示一种线性变换。很多同学在学线性代数时对矩阵相乘的方法感到奇怪,但是如果明白了矩阵相乘的物理意义,其合理性就一目了然了

参考文献:

1.

PCA数学原理


2.矩阵论–程云鹏

3.Introduction to Linear Algebra–GILBERT STRANG