【導讀】近日,機器學習專業(yè)學生 Niklas Donges 撰寫了一篇關(guān)于深度學習需要的數(shù)學基礎(chǔ)相關(guān)知識。線性代數(shù)對于理解機器學習和深度學習內(nèi)部原理至關(guān)重要,這篇博文主要介紹了線性代數(shù)的基本概念,包括標量、向量、矩陣、張量,以及常見的矩陣運算。本文從一個直觀、相對簡單的角度講解了線性代數(shù)中的概念和基礎(chǔ)操作,即使您沒有相關(guān)的基礎(chǔ)知識,相信也很容易理解。
編譯 | 專知
參與 | Yingying
深度學習中的線性代數(shù)
學習線性代數(shù)對理解機器學習背后的理論至關(guān)重要,特別是對于深度學習。 它讓您更直觀地了解算法是如何工作的,從而使您能夠做出更好的決策。 本文將介紹用于機器學習的一些線性代數(shù)概念。
▌簡介
線性代數(shù)是一種連續(xù)的數(shù)學形式,它在整個科學和工程中被廣泛應用,因為它允許對自然現(xiàn)象進行建模并高效計算。線性代數(shù)也是幾乎所有數(shù)學領(lǐng)域的核心。它是理解機器學習背后理論的關(guān)鍵,尤其是深度學習。在開始使用機器學習之前,您不需要了解線性代數(shù),但是在某些時候,您需要更好地理解不同機器學習算法的工作原理。這將有助于您在機器學習系統(tǒng)的開發(fā)過程中做出更好的決策。所以,如果你真的想成為這個領(lǐng)域的專家,你必須理解線性代數(shù)。在線性代數(shù)中,數(shù)據(jù)由矩陣和向量的形式的線性方程表示。因此,你主要處理的是矩陣和向量,而不是標量(我們將在下一節(jié)介紹這些術(shù)語)。如果您使用像Numpy這樣的庫,則只需幾行代碼即可輕松計算復雜的矩陣乘法。請注意,這篇博文忽略了對機器學習不重要的線性代數(shù)的概念。
▌數(shù)學對象(Mathematical Objects)
標量只是一個單一的數(shù)字。 例如24。
向量是一個有序的數(shù)字數(shù)組,可以在一行或一列中。 向量只有一個索引,可以指向矢量中的特定值。 例如,V2代表向量中的第二個值,在上面的黃色圖片中為“-8”。
▌矩陣(Matrix)
矩陣是一個有序的二維數(shù)組,它有兩個索引。 第一個指向行,第二個指向列。 例如,M23表示第二行和第三列中的值,在上面的黃色圖片中為“8”。 矩陣可以有多個行和列。 請注意,向量也是一個矩陣,但只有一行或一列。
在黃色圖片的例子中的矩陣也是2×3維的矩陣(行*列)。 下面你可以看到矩陣的另一個例子及其符號:
張量(Tensor)
張量是一組數(shù)字,排列在一個規(guī)則的網(wǎng)格上,具有不同數(shù)量的軸。 張量有三個指標,第一個指向行,第二個指向列,第三個指向軸。 例如,V232指向第二行,第三列和第二個軸。 這在下圖最右邊張量中的值為0:
這是上述所有概念中最通用的術(shù)語,因為張量是一個多維數(shù)組,它可以是一個矢量和一個矩陣,它取決于它所具有的索引數(shù)量。 例如,一階張量將是一個向量(1個索引)。 二階張量是矩陣(2個指數(shù))和三階張量(3個指數(shù)),更高的稱為高階張量(超過3個指數(shù))。
▌計算規(guī)則(Computational Rules)
如果在矩陣基礎(chǔ)上乘除或者加一個變量,就代表對矩陣的每一個元素進行數(shù)學運算。 下圖顯示了的乘法例子:
將矩陣與矢量相乘可以被認為是將矩陣的每一行與矢量的列相乘。 輸出將是一個具有與矩陣相同行數(shù)的向量。 下圖顯示了這是如何工作的:
為了更好地理解這個概念,我們計算第二個圖像。 為了得到結(jié)果向量的第一個值(16),我們將我們想要與矩陣(1和5)相乘的向量的數(shù)字乘以矩陣的第一行的數(shù)字(1和3))。
像這樣:
1 * 1 + 3 * 5 = 16
我們對矩陣的第二行中的值也做同樣的操作:
4 * 1 + 0 * 5 = 4
再次計算矩陣的第三行:
2 * 1 + 1 * 5 = 7
這是另一個例子:
下圖是一個總結(jié):
矩陣與矩陣加法和減法相當簡單直接。 要求是矩陣具有相同的尺寸,并且結(jié)果將是具有相同尺寸的矩陣。 您只需在第一個矩陣中添加或減去第二個矩陣的每個值進行元素級的運算。如下圖所示:
如果你知道如何將一個矩陣乘以一個向量,那么將兩個矩陣相乘并不困難。 請注意,如果第一個矩陣列的數(shù)量與第二個矩陣行的數(shù)量匹配,兩個矩陣才能做乘法運算。 結(jié)果將是一個與第一個矩陣相同行數(shù)和與第二個矩陣相同列數(shù)的矩陣。 它的計算方法如下:
將第二個矩陣拆分為列向量,然后將第一個矩陣分別與這些向量中的每一個相乘。 然后你把結(jié)果放在一個新的矩陣中。 下面的圖片逐步解釋了這一點:
下圖進行總結(jié):
▌矩陣乘法屬性(Matrix Multiplication Properties)
矩陣乘法有幾個屬性,我們將在下面逐一討論。為了更好地理解我們將首先用標量來解釋這些概念,然后再運用于矩陣。
標量乘法是可交換的,但矩陣乘法不行。這意味著當我們乘以標量時,7 * 3與3 * 7相同。但是當我們將矩陣彼此相乘時,A * B與B * A不一樣。
標量和矩陣乘法都有結(jié)合律。這意味著標量乘3(5 * 3)與(3 * 5)3相同并且矩陣乘A(B * C)與(A * B)C相同。
標量和矩陣乘法也是滿足分配律。這意味著3(5 + 3)與3 * 5 + 3 * 3相同,并且A(B + C)與A * B + A * C相同。
單位矩陣是一種特殊的矩陣,但首先,我們需要定義什么是單位。數(shù)字1是一個單位,因為你與1相乘的所有東西都等于它自己。因此,與單位矩陣相乘的每個矩陣都等于它自己。例如,矩陣A乘以其單位矩陣等于A。
您可以通過以下事實來發(fā)現(xiàn)單位矩陣:它沿對角線為1,其他每個值都為零。它也是一個“方陣”,意思是它的行數(shù)與列數(shù)相同。
我們之前討論過矩陣乘法不是可交換的,但是有一個例外,即如果我們將矩陣乘以單位矩陣。 因此,以下等式成立:A * I = I * A = A
▌反轉(zhuǎn)和轉(zhuǎn)置 (Inverse and Transpose)
矩陣逆和矩陣轉(zhuǎn)置是兩種特殊的矩陣屬性。 再次,我們將首先討論這些屬性如何與實數(shù)相關(guān),然后討論它們與矩陣的關(guān)系。
1. 逆 (Inverse)
首先,什么是矩陣的逆? 乘以其倒數(shù)的數(shù)字等于1.請注意,除0以外的每個數(shù)字都有倒數(shù)。 如果你將矩陣乘以它的逆,結(jié)果將是它的單位矩陣。 下面的例子展示了標量的逆:
但不是每個矩陣都有逆矩陣。 如果矩陣是“方陣”并且它可以具有逆矩陣,則可以計算矩陣的逆矩陣。 討論哪些矩陣具有逆的情況超出了本文的范圍。
為什么我們需要一個逆? 因為我們不能除以矩陣。 沒有矩陣除法的概念,但我們可以通過逆矩陣乘以矩陣,產(chǎn)生相同的結(jié)果。
下圖顯示了一個矩陣,它乘以自己的逆矩陣,得到一個2乘2的單位矩陣。
您可以使用Numpy輕松計算矩陣的逆(如果可以的話)。 下面是文檔鏈接:
https://docs.scipy.org/doc/numpy-1.14.0/reference/generated/numpy.linalg.inv.html
2.轉(zhuǎn)置 (Transpose)
最后,我們將討論矩陣轉(zhuǎn)置。 這基本上是沿著45度軸線的矩陣的鏡像。 獲得矩陣的轉(zhuǎn)置相當簡單。 它的第一列僅僅是移調(diào)矩陣的第一行,第二列變成了矩陣移調(diào)的第二行。 一個m * n矩陣被簡單地轉(zhuǎn)換成一個n * m矩陣。 另外,A的Aij元素等于Aji(轉(zhuǎn)置)元素。 下圖說明:
▌總結(jié)
在這篇文章中,您了解了機器學習中使用的線性代數(shù)的數(shù)學對象。 你還學會了如何對這些數(shù)學對象進行乘,除,加和減操作。 此外,您已經(jīng)了解了矩陣的最重要屬性,以及為什么它們使我們能夠進行更高效的計算。 最重要的是,你已經(jīng)學會了什么是逆矩陣和轉(zhuǎn)置矩陣,你可以用它做什么。 雖然在機器學習中也使用了線性代數(shù)的其他部分,但這篇文章給了你一個最重要概念的正確介紹。
參考文獻
Deep Learning (book)?—?Ian Goodfellow, Joshua Bengio, Aaron Courville
https://machinelearningmastery.com/linear-algebra-machine-learning/
Andrew Ng’s Machine Learning course on Coursera
https://en.wikipedia.org/wiki/Linear_algebra
https://www.mathsisfun.com/algebra/scalar-vector-matrix.html
https://www.quantstart.com/articles/scalars-vectors-matrices-and-tensors-linear-algebra-for-deep-learning-part-1
https://www.aplustopper.com/understanding-scalar-vector-quantities/
原文鏈接:
https://towardsdatascience.com/5-types-of-regression-and-their-properties-c5e1fa12d55e