数学要素(全彩图解 + 微课 + Python编程)
上QQ阅读APP看书,第一时间看更新

1.8 矩阵加减:形状相同,对应位置,批量加减

本节介绍矩阵加减法。矩阵相加减就是批量化完成若干加减运算。矩阵加减可以视作四则运算中加减的高阶版本。

上一节说过,行向量和列向量是特殊的矩阵。两个等长的行向量相加,为对应元素相加,得到还是一个行向量,如

同理,两个等长行向量相减,就是对应元素相减,得到的也是相同长度的行向量,如

式(1.19)和式(1.20)相当于一次性批量完成了三个加减法运算。

同理,两个等长的列向量相加,得到的仍然是一个列向量,如

图1.22所示为两个数字相加的示意图。图1.23所示为向量求和。

注意:两个矩阵能够完成加减运算的前提——形状相同。

图1.22 数字求和

图1.23 向量求和

Bk3_Ch1_10.py展示了四种计算行向量相加的方式。这四种方法中,当然首推使用NumPy。

矩阵加减

形状相同的两个矩阵相加的结果还是矩阵。运算规则为,对应位置元素相加,形状不变,如

两个矩阵相减的运算原理完全相同,如

Bk3_Ch1_11.py用for循环完成矩阵加法运算,这种做法并不推荐!Bk3_Ch1_12.py利用NumPy完成矩阵加法。

注意:用for循环来解决矩阵相加是最费力的办法,比如Bk3_Ch1_11.py代码给出的例子。为了让代码运算效率提高,常用的方法之一就是——向量化(vectorize)。也就是说,尽量采用向量/矩阵运算,以避免循环。

数字和数学是抽象的,它们是人类总结的规律,是人类思想的产物。

“双兔傍地走”中的“双”就是2;2这个数字对人类有意义,对兔子自身没有意义;两只兔子自顾自地玩耍,一旁暗中观察的某个人在大脑中思维活动抽象产生了“双”这个数字概念,而且要进一步“辨雄雌”。

试想一个没人类的自然界。那里,天地始交,万物并秀,山川巍峨,江河奔涌,雨润如酥,暗香浮动,芳草萋萋,鹿鸣呦呦,鹰击长空,鱼翔浅底。

试问,这般香格里拉的梦幻世界和数字有什么关系?

然而,本书的读者很快就知道,微观世界中,自然界中,天体运行中,人类通过几千年的观察研究发现,数字、数学规律无处不在;只是天意从来高难问,大部分规律不为人所知罢了。

这让我们不禁追问,可感知世界万物是否仅仅是表象?世界万物创造动力和支配能量,是否就是数字和数学?我们听到的、看到的、触摸到的,是否都是数字化的,虚拟化的?整个物质世界仅仅是某个巨型计算机模拟的产物吗?这些问题让我们不寒而栗。

老子说:“大道无形,生育天地;大道无情,运行日月。”老子是否真的参透了世间万物?他口中的“大道”是否就是数字、数学规律?

推荐一本机器学习数学基础的好书,Mathematics for Machine Learning,剑桥大学出版社。这本书给了本书很多可视化灵感。该书作者提供全书免费下载,地址为:

 https://mml-book.github.io/book/mml-book.pdf

这本书横跨线性代数、微积分、概率统计三大板块。对于基础薄弱的读者,读这本书可能会存在很多困难。大家学完“鸢尾花书”数学板块的《数学基础》《矩阵力量》《统计至简》三册之后,大家就会发现Mathematics for Machine Learning变得好读多了。