- 深度学习与大模型基础
- 段小手
- 2625字
- 2025-03-27 18:19:10
2.2 矩阵的运算
2.2.1 矩阵的转置
矩阵的转置是指将矩阵的行和列交换位置得到的新矩阵。例如, 如果有一个3行2列的矩阵A:

那么它的转置矩阵AT就是一个2行3列的矩阵, 其行元素为原矩阵的列元素, 排列的结果为:

可以看出, 矩阵的转置不改变矩阵的主对角线上的元素 (即原矩阵中第i行第j列的元素, 在转置后的矩阵中位置变为第j行第i列), 但改变了矩阵中非主对角线上的元素的位置。矩阵的转置在很多数学和工程问题中都具有重要的应用。
结合生活中的例子来理解, 大家可以把矩阵想象成一个二维的数据表格, 就像是电影院的座位表, 有排有列, 每个格子里都有一个数值, 代表这个位置上的数据。矩阵的转置其实就是把这个表格沿着对角线进行翻转。什么意思呢? 就是说, 原本在第一行第二列的数字, 现在就会变成第二行第一列的数字。
用生活中的例子来说, 就好比我们在看电影时, 坐在座位表上第三排第四个座位, 但是我们想换到第四排第三个座位, 这时候就要找工作人员帮忙了。那么电影院座位表的转置就是将所有的座位行变成列, 列变成行, 然后我们再去找第四排第三个座位, 就可以愉快地看电影啦, 就像图2-5所示的这样。

图2-5 将女孩的座位换到男孩后面, 就像矩阵的转置
转置矩阵在很多领域都有重要的应用, 比如在机器学习中, 经常会使用转置矩阵进行特征提取和数据降维等操作。所以, 掌握它可不仅仅是为了看电影方便。
原理输出2. 5
为了帮助大家更好地理解和消化矩阵的转置的概念, 请大家在ChatGPT的帮助下, 录制一个长度约为2分钟的短视频, 介绍什么是矩阵的转置。
小贴士
可以参考的ChatGPT提示词如下。
“请简要介绍什么是矩阵的转置。”
“请结合生活中的例子, 介绍矩阵的转置的概念。”
“假设你是一位大学老师, 请用轻松易懂的语言向学生讲解矩阵的转置。”
实操练习2. 5
为了让大家可以用代码的形式学习矩阵的转置, 接下来大家可以让ChatGPT生成代码进行演示, 并在Colab新建一个Notebook文件运行这些代码。
小贴士
要让ChatGPT生成代码, 可以参考的提示词如下。
“请用Python演示矩阵的转置, 需要可视化。”
“用Python可视化的方法演示矩阵的转置。”
2.2.2 矩阵的广播
矩阵广播是一种在不同形状的数组之间进行运算的方法。它允许较小的数组通过复制其条目来与较大的数组进行操作, 从而使它们具有相同的形状。
在矩阵广播中, 系统会尝试将较小的数组沿着缺失的维度进行复制, 以匹配较大数组的形状, 然后再进行计算。例如, 如果一个2×2的矩阵加上一个大小为1×2的行向量, 则系统会自动将行向量扩展为2×2大小, 使其与第一个矩阵具有相同的形状, 然后再执行加法操作。
这种广播机制可以简化代码, 并提高程序的效率, 因为它避免了创建多个相同形状的数组, 同时也增加了代码的可读性和灵活性。
例如, 你和你的朋友一起去吃饭, 你们俩要合作完成不同种类食物的搭配, 比如汉堡加可乐、薯条加红豆冰淇淋……但是, 你和你的朋友手上的食材数量却不相等, 这时候该怎么办呢?
别担心, 这就是矩阵的广播过程! 矩阵的广播可以让你在处理不同形状的矩阵时, 自动地扩展其中一个矩阵以匹配另一个矩阵的形状。就像你和你的朋友合作, 只需要将其中一个人的食物量扩大到和另一个人一样多, 然后再进行搭配。
举个例子, 你有6个汉堡, 摆成2行, 每行有3个, 这就可以看成是一个2行3列的矩阵A。而你的朋友有3杯可乐, 摆成1行, 可以看成是1个1行3列的矩阵B。现在你们要组合出6个汉堡可乐套餐, 但你朋友手里的可乐不够。这怎么办呢? 不要紧, 你们可以用超能力把3杯可乐变成6杯。然后把可乐也摆成2行3列的矩阵, 这样就可以和汉堡矩阵一起组合成6个套餐了。而你们把原本1行3列的可乐矩阵变成2行3列的过程, 就可以类比为矩阵的广播, 就像图2-6所示的这样。

图2-6 将可乐“广播”来匹配汉堡的数量
原理输出2. 6
为了帮助大家更好地理解和消化矩阵的广播的概念, 请大家在ChatGPT的帮助下, 录制一个长度约为2分钟的短视频, 介绍什么是矩阵的广播。
小贴士
可以参考的ChatGPT提示词如下。
“请简要介绍什么是矩阵的广播。”
“请结合生活中的例子, 介绍矩阵的广播的概念。”
“假设你是一位大学老师, 请用轻松易懂的语言向学生讲解矩阵的广播。”
实操练习2. 6
为了让大家可以用代码的形式学习矩阵的广播, 接下来大家可以让ChatGPT生成代码演示, 并在Colab新建一个Notebook文件运行这些代码。
小贴士
要让ChatGPT生成代码, 可以参考的提示词如下。
“请用Python演示矩阵的广播, 需要可视化。”
“用Python可视化的方法演示矩阵的广播。”
2.2.3 矩阵乘法
矩阵乘法是指两个矩阵相乘的操作。对于两个矩阵A和B, 如果A的列数等于B的行数, 则可以进行矩阵乘法。具体来说, 设A为m×n的矩阵 (即有m行、 n列), B为n×p的矩阵 (即有n行、 p列), 则它们的乘积记作C, C为m×p的矩阵, 其中C中第i行第j列的元素等于A中第i行与B中第j列对应元素的乘积之和。
用通俗的语言来理解——假设你是一家餐厅的老板, 经营着不同种类的菜品, 比如牛排、鸡肉、青菜等。同时, 你有一份菜单, 上面列出了每种菜品的名称、价格和描述。
现在, 你想要知道如果顾客点了牛排、青菜和土豆泥, 他们需要支付多少钱。这时候, 你可以去菜单上找到这些菜品对应的价格, 然后把它们加起来, 就能得到总价了。
这就好比是对两个向量进行内积运算, 也就是简单地相乘并相加。
但是, 如果你的餐厅变得越来越受欢迎, 你可能会遇到更多的订单, 有些订单中会有重复的菜品, 比如有人点了两份牛排或者三份青菜。
这时候, 你不能简单地将所有的价格加起来, 因为你会计算出错误的总价。你需要将每种菜品的数量和价格相乘, 再相加得到总价, 就像图2-7所示的这样。
这就是矩阵乘法的过程, 其中一个矩阵代表菜品和它们的价格, 另一个矩阵代表每种菜品的数量。通过将这两个矩阵相乘并相加, 你最终可以得到正确的总价。

图2-7 菜品的数量与价格相乘后再相加, 也可以看成是矩阵乘法
所以, 矩阵乘法就是一种用于处理大量数据的算法, 它的原理类似于你在餐厅中计算订单价格的过程。
原理输出2. 7
为了帮助大家更好地理解和消化矩阵乘法的概念, 请大家在ChatGPT的帮助下, 录制一个长度约为2分钟的短视频, 介绍什么是矩阵乘法。
小贴士
可以参考的ChatGPT提示词如下。
“请简要介绍什么是矩阵乘法。”
“请结合生活中的例子, 介绍矩阵乘法的概念。”
“假设你是一位大学老师, 请用轻松易懂的语言向学生讲解矩阵乘法。”
实操练习2. 7
为了让大家可以用代码的形式学习矩阵乘法, 接下来大家可以让ChatGPT生成代码演示, 并在Colab新建一个Notebook文件运行这些代码。小贴士
要让ChatGPT生成代码, 可以参考的提示词如下。
“请用Python演示矩阵乘法, 需要可视化。”
“用Python可视化的方法演示矩阵乘法。”