矩阵乘法到底是什么意思? - ag官方网站

矩阵乘法到底是什么意思?

引言

每次看到矩阵这个单词,就想到了Matrix,而Matrix在《黑客帝国》里被翻译为“母体”。矩阵,行列式,Matrix基本上是同一个意思。在大学里有《线性代数》这门课,这是专门介绍行列式的课程。

矩阵在计算机计算里非常重要,目前,很多人工智能都要利用矩阵算法。

1.二元一次方程

在介绍矩阵前,先看一下初中的二元一次方程的解法:

要解这个方程:

step1: 把(1) 式乘以2减去(2) 式,消去x, 得到 -y=-1,所以 y=1

step2: 把(1)式乘以3减去(2)式,消去y,得到2x=2,所以 x=1

是就是传统的消元法解方程方程。把上面方程更抽象写成

因为在求方程时,等号右边的是常数,你能想象出,常数最终可以移到左边,使得等号右边为0,因此,我们最关心的方程的系数。

由方程的系数,组成了最原始的行列式。

在上面消元法可以到有n个变量的情况,最终,这些系数可以组成一个矩阵。

2.矩阵的加法

既然有矩阵,可以很容易实现矩阵的加法(减法可以看成加法的逆运算)。

矩阵的加法就是对应元素相加, 这非常好理解。

如果用A,B表示2个矩阵,那么 A+B=B+A

3.矩阵的乘法

和矩阵的加法相比,矩阵的乘法一直很难理解。先看矩阵乘法怎么算的:下面是一个矩阵乘法:

教科书告诉你,计算规则是,第一个矩阵第一行的每个数字(2和1),各自乘以第二个矩阵第一列对应位置的数字(1和1),然后将乘积相加( 2 x 1 + 1 x 1),得到结果矩阵左上角的那个值3。

下面表示了如何58的: 1*7+2*9+3*11=58

为什么矩阵要这么算?更奇怪的是,如果用A,B表示两个矩阵,通常 A*B≠B*A

这和我们通常看的数学乘法:2*3=3*2 完全不一样?

太神奇了!

4.巴士车费

让我们根据日常生活,来理解一下矩阵。

假设有一班巴士从A站出发,经过BCD三站到达E这个终点站。这个车的收费沿用了我们怀旧时代的老传统,不是上车一律给2块钱,而是根据起点和终点来单独计费。

我们不妨订一个收费标准:A站和B站之间是1块钱,B和C靠得比较近,0.5元。C和D之间还是1块钱,而D和E离得远,2块钱。这样一来车费就容易计算了,比如我从B站上车到E站,那么我就应该给0.5+1+2=3.5元作为车费。反过来,如果我从D站上车到A站,那么道理是一样的:1+0.5+1=2.5块钱。

现在如果让给乘客设计车费计算公式,你怎么设计?

你说:这个问题很简单,车费问题实际上就是两个站之间的距离问题,我们只要把每一个站的位置状况写出来,那么乘客们就能够一目了然了。于是你就假设,A站的坐标是0,从而推出:B站的坐标是1,C站的坐标是1.5,D站的坐标是2.5,而E站的坐标是4.5。这就行了,你说,车费就是起点站的坐标减掉终点站的坐标的绝对值, 所有的情况都完全可以包含在下面这个表格里:

这便是一种经典的解法,每一个车站都有一个绝对坐标。但是,这里似乎有又哪里不对劲。

5.车费的二维表

你似乎也感觉到了,上面计算好想是正确的,但是并不是作为“乘客”想要的。

作为一个乘客,对你来说,你根本不关心车站有什么“绝对坐标”。比如我从C站乘车到D站,无论怎么样我也无法观察到“C站的坐标是1.5”,或者“D站的坐标是2.5”这个结论。作为我——乘客来说,我所能唯一观察和体会到的,就是“从C站到达D站要花1块钱”,这才是最确凿,最坚实的东西。我们的车费规则,只能以这样的事实为基础。

因此,你重新设计了车辆费用计算方式,如下:

这里面,横坐标是起点站,纵坐标是终点站。现在这张表格里的每一个数字都是实实在在可以观测和检验的了。比如第一行第三列的那个1.5,它的横坐标是A,表明从A站出发。它的纵坐标是C,表明到C站下车。那么,只要某个乘客真正从A站坐到了C站,他就可以证实这个数字是正确的:这个旅途的确需要1.5块车费。

6.物理解释矩阵乘法

现在给你一个矩阵乘法:

那么如何计算这个乘法的结果呢?

参考车费问题上面2个矩阵,可以代表2个车费表,分别用I和II表示。 那么现在我们的I和II就分别成了两条路线的旅游巴士,在两个城市之间来往,只不过收费有所不同而已。我们把它们称为巴士I号线和巴士II号线。为了再形象化一点,我们假设这两个城市是隔着罗湖桥比邻的深圳和香港。

这样的话,我们的表格就有了具体的现实意义。如前面已经说明的那样,表的横坐标是出发站,纵坐标是终点站。所以对于巴士I号线来说,在深圳市内游玩需要1块车费,从深圳出发到香港则要8块钱。反过来,从香港出发回深圳要7块钱,而在香港市内观光则需3块。II号表格里的数字与此类似。

好吧,到目前为止一切都不错,I×II到底是多少呢?这种运算代表什么意义呢?和我们的巴士旅游线又有什么关系呢? 首先要把握大方向。I是一个2×2的表格,II也是一个2×2的表格。那么,我们有理由去猜测,它们的乘积应该也是一个2×2的表格。

位于左上角的a是多少呢?是不是简单地把I号表左上角的1乘以II号表左上角的2,1×2=2就行了呢?我们要时时牢记车费表的现实意义:左上角代表了从深圳出发,还在深圳下车的总车费。1×2的确符合要求:先乘I号线在深圳游玩一阵,随后原地下车再搭II号线再次市内游!总的路线是:深圳→深圳→深圳。起点和终点都在深圳,坐标在左上角,没错!

但是,我们忽略了另一条路线!左上角的a要求从深圳出发,最后在深圳下车,却没有规定整个过程全都在深圳市内!实际上,很容易想象另一条路线:深圳→香港→深圳,它依然符合起点和终点都在深圳的要求。这样一来,我们必须先搭I号线去香港(收费7元),在香港转搭II号线回深圳(收费6元),它们的乘积是7×6=42!

a最终的数值,应该是所有可能路线的叠加(深圳→?→深圳)。在本例中,只有上述两条路线,没有第三种可能了。所以a=1×2+7×6=44。

很奇妙,是不是?我们再来看右上角的b。深圳出发香港下车,同样也有两种可能的路线:深圳→深圳→香港,或者深圳→香港→香港。要么先乘I号线深圳市内游再搭II号线到香港(1×5),要么先乘I号线到香港然后转II号线香港市内游(7×4)。所以综合来说,b=1×5+7×4=33。

用同样的方法,可以求出c和d。最后应该是这样的:c=8×2+3×6=34,d=8×5+3×4=52。所以:

7.矩阵乘法为什么不满足交换律?

在介绍矩阵时,知道 两个矩阵的乘积A*B并不等于B*A。接着上面列子,我们把矩阵换过来

我们来看看a是什么,现在我们是先乘搭II号线,然后转I号线了。我们可以先搭II号线在深圳市内转搭I号线再次市内游(深圳→深圳→深圳),对应的是2×1。另外,还有一条路线:深圳→香港→深圳,所以是先搭II号线去香港,在那里转搭I号线回深圳,所以是5×8=40。所以总的来说,a=2×1+5×8=42。 所以这个42并不等于44,两个矩阵并不相等。

参考下图: A*B矩阵不等于B*A矩阵,

现在你理解矩阵乘法为什么不支持交换律的了吧?

申明:本文主要参考《上帝掷骰子吗》是2006年01月01日辽宁教育出版社出版的图书,作者是曹天元。这是我见过对矩阵乘法解释最好的一本书。

免责声明:本文仅代表文章作者的个人观点,与本站无关。其原创性、真实性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容文字的真实性、完整性和原创性本站不作任何保证或承诺,请读者仅作参考,并自行核实相关内容。

http://www.pinlue.com/style/images/nopic.gif
我要收藏
赞一个
踩一下
分享到

分享
评论
首页