- 深度學習與大模型基礎
- 段小手
- 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可視化的方法演示矩陣乘法。”