- 数学要素(全彩图解 + 微课 + Python编程)
- 姜伟生
- 1118字
- 2024-12-27 22:40:20
1.8 矩阵加减:形状相同,对应位置,批量加减
本节介绍矩阵加减法。矩阵相加减就是批量化完成若干加减运算。矩阵加减可以视作四则运算中加减的高阶版本。
上一节说过,行向量和列向量是特殊的矩阵。两个等长的行向量相加,为对应元素相加,得到还是一个行向量,如
![](https://epubservercos.yuewen.com/76631A/31398337104755406/epubprivate/OEBPS/Images/Figure-P42_1139960.jpg?sign=1739626270-M39R9Dqsupwj0MNkEIgvyUHlbyKhAQ4R-0-1b45c3e9321dd9cde76c8d27bac1a82d)
同理,两个等长行向量相减,就是对应元素相减,得到的也是相同长度的行向量,如
![](https://epubservercos.yuewen.com/76631A/31398337104755406/epubprivate/OEBPS/Images/Figure-P42_1139961.jpg?sign=1739626270-uANFA2VYVySDRUUmF9FzFecibicYN9CP-0-7f5681845960df32398af9be3c5a1e9e)
式(1.19)和式(1.20)相当于一次性批量完成了三个加减法运算。
同理,两个等长的列向量相加,得到的仍然是一个列向量,如
![](https://epubservercos.yuewen.com/76631A/31398337104755406/epubprivate/OEBPS/Images/Figure-P42_1139963.jpg?sign=1739626270-uSMcVK6mjjrfpxFtMPPr7ih7mDsLPqCc-0-965475b08b338606488d8ef0d84e318d)
图1.22所示为两个数字相加的示意图。图1.23所示为向量求和。
注意:两个矩阵能够完成加减运算的前提——形状相同。
![](https://epubservercos.yuewen.com/76631A/31398337104755406/epubprivate/OEBPS/Images/Figure-P42_1139964.jpg?sign=1739626270-XXdSKuCLcedSv7QHKkZHInFST36QA9KI-0-06f5b2d719a3818503ded9cdf65bbd90)
图1.22 数字求和
![](https://epubservercos.yuewen.com/76631A/31398337104755406/epubprivate/OEBPS/Images/Figure-P42_1139968.jpg?sign=1739626270-s9OSSDJKkKSjxsIdHkAuK4vLBPcyhchZ-0-b520949500da27e6d89558e53457b018)
图1.23 向量求和
Bk3_Ch1_10.py展示了四种计算行向量相加的方式。这四种方法中,当然首推使用NumPy。
矩阵加减
形状相同的两个矩阵相加的结果还是矩阵。运算规则为,对应位置元素相加,形状不变,如
![](https://epubservercos.yuewen.com/76631A/31398337104755406/epubprivate/OEBPS/Images/Figure-P42_1139971.jpg?sign=1739626270-D5XowjDevpQ3tIeCZTDFposxs9DY8mpg-0-03ac988c3d72a3d3f797f5c9ad2b5dee)
两个矩阵相减的运算原理完全相同,如
![](https://epubservercos.yuewen.com/76631A/31398337104755406/epubprivate/OEBPS/Images/Figure-P43_1139972.jpg?sign=1739626270-Bb7yi6549l6TG0oU9gSqE2Yxj0MBSqnB-0-20db3ad44b40376b0d78e6c2cac0290a)
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变得好读多了。