深度學習入門數學基礎之線性代數篇

線性代數的概念對理解機器學習背後的理論至關重要,特別是對於深度學習。它讓你更直觀地了解演算法如何在真正的工作環境下工作,從而使你能夠做出更好的決策。所以如果你真的想成為這個領域的專業人士,你就不會掌握它的一些概念。本文將介紹線性代數最重要的概念,這些概念用於機器學習。

線性代數是一種連續的數學形式,它在整個科學和工程中得到應用,因為它允許你對自然現象建模並有效計算它們。因為它是一種連續的而不是離散的數學形式,很多計算機科學家並沒有太多的經驗。線性代數也是數學幾乎所有領域的核心,如幾何和功能分析。它的概念是理解機器學習背後的理論的一個重要先決條件,尤其是在你使用深度學習演算法的情況下。

在開始使用機器學習之前,你不需要了解線性代數,但是在某些時候,希望更好地理解不同的機器學習演算法如何真正在底層工作。這將有助於你在機器學習系統的開發過程中做出更好的決策。所以如果你真的想成為這個領域的專業人士,那麼你不會掌握對機器學習很重要的零件線性代數。在線性代數中,數據由線性方程表示,以矩陣和向量的形式表示。因此,你主要處理的是矩陣和向量,而不是標量(我們將在下一節介紹這些術語)。如果你的建議中有像Numpy這樣的正確庫,則只需幾行代碼即可輕鬆計算複雜的矩陣乘法。這篇文章會忽略對機器學習不重要的線性代數的概念。

數學對象

標量

標量只是一個單一的數字。例如24。

向量

向量是一個有序的數字數組,可以在一行或一列中。它只有一個索引,可以指向矢量中的特定值。例如,V2代表向量的第二個值,在上面的黃色圖片中為「-8」。

矩陣

矩陣是一個有序的二維數組,它有兩個索引。第一個指向該行,第二個指向該列。例如,M23表示第二行和第三列的值,在上面的黃色圖片中為「8」。矩陣可以有多個行和列。請注意,向量也是一個矩陣,但只有一行或一列。

在黃色圖片的例子中的矩陣也是2×3維的矩陣(行*列)。下面你可以看到矩陣的另一個例子及其符號:

張量

張量是一組數字,排列在一個規則的網格上,具有不同數量的軸。張量有三個指標,第一個指向行,第二個指向列,第三個指向軸。例如,V232指向第二行,第三列和第二個軸。這指的是右圖張量中的值5,如下圖所示:

這是上述所有概念中最通用的術語,因為張量是一個多維數組,它可以是一個矢量和一個矩陣,它取決於所具有的索引數量。例如,一階張量將是一個向量(1個索引)。二階張量是矩陣(2個指數)和三階張量(3個指數),更高的稱為高階張量(超過3個指數)。

計算規則

1.矩陣標量運算

如果你乘,除,或者用矩陣加一個標量,你可以對矩陣的每一個元素進行數學運算。下圖顯示了完美的乘法例子:

2.矩陣向量乘法

將矩陣與矢量相乘可以被認為是將矩陣的每一行與矢量的列相乘。輸出將是一個具有與矩陣相同行數的向量。下面的圖像顯示了這是如何工作的:

為了更好地理解這個概念,我們將計算第二個圖像。為了得到結果向量的第一個值(16),我們將我們想要與矩陣(1和5)相乘的向量的數字乘以矩陣的第一行的數字(1和3))。這看起來像這樣:

1 * 1 + 3 * 5 = 16

我們對矩陣的第二行中的值也做同樣的事情:

4 * 1 + 0 * 5 = 4

再次為矩陣的第三行:

2 * 1 + 1 * 5 = 7

這是另一個例子:

這裡有一些小抄:

3.矩陣 - 矩陣加法和減法

矩陣加法和減法相當簡單直接。要求是矩陣具有相同的尺寸,並且結果將是具有相同尺寸的矩陣。你只需在第二個矩陣中添加或減去第一個矩陣的每個值及其對應的值。下面的圖片展示了相關內容:

4.矩陣 - 矩陣乘法

如果你知道如何將一個矩陣乘以一個向量,那麼將兩個矩陣相乘並不困難。請注意,如果第一個矩陣列的數量與第二個矩陣行數相匹配,則只能將矩陣相乘。結果將是一個矩陣,它具有與第一個矩陣相同的行數和與第二個矩陣相同的列數。它的工作原理如下:

你只需將第二個矩陣拆分為列向量,並將第一個矩陣分別與這些向量中的每一個相乘即可。然後你把結果放在一個新的矩陣中(不加它們!)。下面的圖片逐步解釋了這一點:

這裡提供了一些備忘單:

矩陣乘法屬性

矩陣乘法有幾個屬性,可以將大量計算捆綁到一個矩陣乘法中。我們將在下面逐一討論。我們將首先用標量和矩陣來解釋這些概念,因為這會讓你更好地理解。

1.交換

標量乘法是可交換的,但不是矩陣乘法。這意味著當我們乘以標量時,7 * 3與3 * 7相同。但是當我們將矩陣彼此相乘時,A * B與B * A不一樣。

2.關聯

標量和矩陣乘法都是關聯的。這意味著標量乘3(5 * 3)與(3 * 5)3相同並且矩陣乘A(B * C)與(A * B)C相同。

3.分配

標量和矩陣乘法也是分散式的。這意味著3(5 + 3)與3 * 5 + 3 * 3相同,並且A(B + C)與A * B + A * C相同。

4.單位矩陣

單位矩陣是一種特殊的矩陣,但首先,我們需要定義什麼是單位。數字1是一個單位,因為你與1相乘的所有東西都等於它自己。因此,與單位矩陣相乘的每個矩陣都等於它自己。例如,矩陣A乘以其單位矩陣等於A.

你可以通過以下事實來發現單位矩陣:它沿對角線有一個,而其他每個值都為零。它也是一個「平方矩陣」,意思是它的行數與列數相匹配。

我們之前討論過矩陣乘法不是可交換的,但是有一個例外,即如果我們將矩陣乘以單位矩陣。因此,以下等式成立:A * I = I * A = A

逆向和轉置

矩陣逆和矩陣移位是兩種特殊的矩陣屬性。再次,我們將首先討論這些屬性如何與實數相關,然後討論它們與矩陣的關係。

1.逆向

首先,什麼是逆向?乘以其倒數的數字等於1。請注意,除0以外的每個數字都有倒數。如果你將矩陣乘以它的逆,結果將是它的單位矩陣。下面的例子展示了標量的反例如何:

但不是每個矩陣都有相反的矩陣。如果矩陣是「平方矩陣」並且它可以有逆矩陣,則可以計算矩陣的逆矩陣。討論哪些矩陣會超出這個帖子的範圍。

為什麼我們需要一個逆向?因為我們不能劃分矩陣。沒有矩陣除法的概念,但我們可以通過逆矩陣乘以矩陣,導致相同的結果。

下圖顯示了一個矩陣,它乘以自己的逆矩陣,得到一個2乘2的單位矩陣。

2.轉置

最後,我們將討論矩陣轉置。這基本上是沿著45度軸線的矩陣的鏡像,獲得矩陣的轉置相當簡單。它的第一列僅僅是轉置矩陣的第一行,第二列變成了矩陣轉置的第二行。一個m * n矩陣被簡單地轉換成一個n * m矩陣。另外,A的Aij元素等於Aji(轉置)元素。下圖說明:

總結

在這篇文章中,你了解了機器學習中使用的線性代數的數學對象,還學會了如何乘、除、加和減這些數學對象。此外,你已經了解了矩陣的最重要的屬性,以及為什麼它們使我們能夠進行更有效的計算。最重要的是,你已經學會了什麼是逆矩陣和轉置矩陣,你可以用它做什麼。雖然在機器學習中也使用了線性代數的其他部分,但這篇文章或許能夠調理清晰的獲得一個概念的正確介紹。


推薦閱讀:

深度 ▏500億菜鳥起飛
RPA深度解讀(萬字長文)
男人的深度和品級
成熟的人,三句話少說,三件事多做(深度好文)
趣談八字規則包含的深度哲理(三)

TAG:數學 | 學習 | 線性代數 | 代數 | 深度學習 | 深度 | 基礎 | 入門 |