微積分、線性代數、機率論,這裡有份超詳細的ML數學路線圖

機器之心發表於2020-11-10

微積分、線性代數、機率論,這裡有份超詳細的ML數學路線圖

機器學習演算法背後的數學知識你瞭解嗎?在構建模型的過程中,如果想超越其基準效能,那麼熟悉基本細節可能會大有幫助,尤其是在想要打破 SOTA 效能時,尤其如此。

機器學習背後的原理往往涉及高等數學。例如,隨機梯度下降演算法建立在多變數微積分和機率論的基礎上。因此掌握基礎的數學理論對於理解機器學習模型很重要。但如果你是沒有數學基礎的初學者,這裡有一份學習路線圖,帶你從零開始深入理解神經網路的數學原理。

大多數機器學習都建立在三種數學理論的基礎上:線性代數微積分和機率論,其中機率論的理論又基於線性代數微積分

微積分、線性代數、機率論,這裡有份超詳細的ML數學路線圖

微積分

微積分包括函式的微分和積分。神經網路本質上是一個可微函式,因此微積分是訓練神經網路的基本工具。

首先,函式的導數定義如下

微積分、線性代數、機率論,這裡有份超詳細的ML數學路線圖

在極限定理中,這也是點 x 處切線的斜率。下圖說明了這個概念:

微積分、線性代數、機率論,這裡有份超詳細的ML數學路線圖

將函式的導數視覺化。

微分可以用來最佳化函式:導數在區域性極大值和極小值處為零。(也有例外,例如:f(x) = x³,x=0),導數為零的點稱為臨界點。臨界點是最小值還是最大值可以透過檢視二階導數來確定:

微積分、線性代數、機率論,這裡有份超詳細的ML數學路線圖

求導存在一些基本法則,其中最重要的可能是鏈式求導法則:

微積分、線性代數、機率論,這裡有份超詳細的ML數學路線圖

上式告訴我們如何計算複合函式的導數

微分和積分互為逆運算,這是因為:

微積分、線性代數、機率論,這裡有份超詳細的ML數學路線圖

它適用於任何可積函式 f(x)。函式的積分也可以看作是曲線下的有符號面積。例如:

微積分、線性代數、機率論,這裡有份超詳細的ML數學路線圖

因為當函式是負的時候,這裡的面積也有一個負號:

微積分、線性代數、機率論,這裡有份超詳細的ML數學路線圖

在 -π到π的區間內,正弦函式曲線下的有符號面積。

推薦一些比較好的學習資源,麻省理工學院的單變數微積分課程和 Gilbert Strang 的教科書。

  • MIT 課程連結:https://www.youtube.com/playlist?list=PL590CCC2BC5AF3BC1

  • 教科書連結:https://ocw.mit.edu/resources/res-18-001-calculus-online-textbook-spring-2005/textbook/

微積分、線性代數、機率論,這裡有份超詳細的ML數學路線圖

線性代數

神經網路本質上是函式,它是用微積分工具訓練的。然而,又涉及線性代數,如矩陣乘法。線性代數是一門涉及機器學習許多方面的龐大學科,因此這將是一個重要的部分。

向量空間

為了更好地理解線性代數,建議從向量空間開始。首先介紹一個特例,把平面上的每個點看作一個元組:

微積分、線性代數、機率論,這裡有份超詳細的ML數學路線圖

這些本質上是從零指向(x₁,x2)的向量。向量之間可以相加,向量也可與標量相乘:

微積分、線性代數、機率論,這裡有份超詳細的ML數學路線圖

這是向量空間的原型模型。一般來說,如果可以將向量相加並將向量與實數相乘,那麼這組向量 V 就是實數上的向量空間,那麼以下屬性成立:

微積分、線性代數、機率論,這裡有份超詳細的ML數學路線圖

這些保證了向量可以相加和縮放。當考慮向量空間時,如果你在心裡把它們建模為 R^2 會很有幫助。

範數空間

如果你很瞭解向量空間,下一步就是理解怎樣測量向量的大小。在預設情況下,向量空間本身並沒有提供這樣的工具。但我們有:

微積分、線性代數、機率論,這裡有份超詳細的ML數學路線圖

這是一種特殊的範數,通常,如果存在函式,則向量空間 V 是範數的:

微積分、線性代數、機率論,這裡有份超詳細的ML數學路線圖

範數為:

微積分、線性代數、機率論,這裡有份超詳細的ML數學路線圖

但這是一個簡單而基本的概念,有很多範數存在,但最重要的是 p 範數家族:

微積分、線性代數、機率論,這裡有份超詳細的ML數學路線圖

當 p=2 時,我們得到上述特例以及最高範數

微積分、線性代數、機率論,這裡有份超詳細的ML數學路線圖

有時,例如對於 p = 2,範數來自所謂的內積,即雙線性函式。

微積分、線性代數、機率論,這裡有份超詳細的ML數學路線圖

因此:

微積分、線性代數、機率論,這裡有份超詳細的ML數學路線圖

具有內積的向量空間稱為內積空間。經典的是歐幾里得積。

微積分、線性代數、機率論,這裡有份超詳細的ML數學路線圖

每一個內積都可以變成一個範數

微積分、線性代數、機率論,這裡有份超詳細的ML數學路線圖

當兩個向量的內積為零時,這兩個向量彼此正交。

基正交 / 正交基

雖然向量空間是無窮的(在本文的例子中),你可以找到一個有限的向量集,用來表示空間中的所有向量。例如,在平面上,我們有:

微積分、線性代數、機率論,這裡有份超詳細的ML數學路線圖

其中 e1,e2 函式如下

微積分、線性代數、機率論,這裡有份超詳細的ML數學路線圖

這是基和正交基的一個特例。一般來說,基(basis)是向量的最小集合:

微積分、線性代數、機率論,這裡有份超詳細的ML數學路線圖

它們的線性組合跨越了向量空間:

微積分、線性代數、機率論,這裡有份超詳細的ML數學路線圖

任何向量空間都存在一個基(它可能不是一個有限集,但這裡不必關心)。毫無疑問,在討論線性空間時,基大大簡化了問題。

當基中的向量相互正交時,我們稱之為正交基(orthogonal basis)。如果每個正交向量的範數在正交基礎上均為 1,則我們說它是正交的。

線性變換

與向量空間非常相關的是線性變換(linear transformation)。如果你之前瞭解神經網路,就應該知道其基本的構建基塊是以下形式的層:

微積分、線性代數、機率論,這裡有份超詳細的ML數學路線圖

其中,A 為矩陣,b 和 x 為向量,σ為 sigmoid 函式(或是其他啟用函式)。Ax 是線性變換的一部分,則函式:

微積分、線性代數、機率論,這裡有份超詳細的ML數學路線圖

是向量空間 V 和 W 之間的線性變換

微積分、線性代數、機率論,這裡有份超詳細的ML數學路線圖

對於 V 中的所有 x、y 值都成立,而且都是實數。

矩陣及其運算

矩陣最重要的運算是矩陣乘積。通常,矩陣 A、B 以及乘積 AB 表示為:

微積分、線性代數、機率論,這裡有份超詳細的ML數學路線圖

微積分、線性代數、機率論,這裡有份超詳細的ML數學路線圖

下圖演示了計算過程:

微積分、線性代數、機率論,這裡有份超詳細的ML數學路線圖

矩陣乘法是線性變換的組合。如果你想了解更多,這裡有一篇很棒的文章:https://towardsdatascience.com/why-is-linear-algebra-taught-so-badly-5c215710ca2c

微積分、線性代數、機率論,這裡有份超詳細的ML數學路線圖

決定因素

行列式是線性代數中最具挑戰性的概念之一。

總而言之,矩陣的行列式描述了在相應的線性變換下,物件的體積是如何縮放的。如果變換改變方向,行列式的符號為負。

特徵值、特徵向量和矩陣分解

標準的線性代數課程通常以特徵值 / 特徵向量和一些特殊的矩陣分解(如奇異值分解)結束。假設我們有一個矩陣 A,並且如果有一個向量 x(稱為特徵向量),那麼λ就是矩陣 A 的特徵值:

微積分、線性代數、機率論,這裡有份超詳細的ML數學路線圖

換句話說,由 A 表示的線性變換對向量 x 進行一個λ縮放,這個概念在線性代數中起著重要作用(實際上在廣泛使用線性代數的每個領域都是如此)。

你需要熟悉矩陣分解,從計算的角度來看,對角矩陣是最好的選擇,如果一個線性變換有一個對角矩陣,那麼計算它在任意向量上的值是很簡單的。

微積分、線性代數、機率論,這裡有份超詳細的ML數學路線圖

大多數特殊形式的目的是將矩陣 A 分解為矩陣乘積,矩陣分解後最好有一個是對角矩陣。奇異值分解(SVD),是指有一個特殊的矩陣 U 和一個對角矩陣Σ,使得:

微積分、線性代數、機率論,這裡有份超詳細的ML數學路線圖

U 和 V 是酉矩陣,是一個特殊的矩陣族。奇異值分解(SVD)也被用來進行主成分分析,這是最簡單和最著名的降維方法之一。

線性代數有許多教授方法,本文列出的學習路徑是受 Sheldon Axler 教材《Linear Algebra Done Right》的啟發。對於線上講座,MIT 的網路公開課值得推薦。

  • Sheldon Axler 的教材地址:http://linear.axler.net/

  • MIT 的網路公開課地址:https://www.youtube.com/playlist?list=PL49CF3715CB9EF31D

微積分、線性代數、機率論,這裡有份超詳細的ML數學路線圖

多變數運算

多變數運算中將線性代數微積分結合在一起,為訓練神經網路的主要工具奠定了基礎。從數學上講,神經網路只是多個變數的函式(儘管變數數量可達數百萬)。

與單變數運算相似,兩個重點是微分和積分。假設存在對映

微積分、線性代數、機率論,這裡有份超詳細的ML數學路線圖

將向量對映到實數。在二維(即 n=2)的情況下,可以將其圖象想象為一個曲面(由於人類生活在三維世界,因此很難將具有兩個以上變數的函式視覺化)。

微積分、線性代數、機率論,這裡有份超詳細的ML數學路線圖

兩變數的函式影像。

多變數微分

在單變數中,導數是切線的斜率。那麼在此應該如何定義切線呢?表面上的一個點處不只有一條切線,而是多條。這些切線中有兩條特殊的切線:分別為平行於 x-z 平面的切線和平行於 y-z 平面的切線。

這兩條切線的斜率由偏導數決定,如下:

微積分、線性代數、機率論,這裡有份超詳細的ML數學路線圖

這些特殊方向的切線橫跨切平面。

微積分、線性代數、機率論,這裡有份超詳細的ML數學路線圖

切平面。

梯度

另一個特殊的方向是梯度方向:

微積分、線性代數、機率論,這裡有份超詳細的ML數學路線圖

梯度始終指向增加最快的方向,因此沿這個方向前進一小步,高度上的增加相對於其他方向是最大的。這就是梯度下降的基本思想,它是讓函式最大化的演算法。其步驟如下:

  1. 計算當前位置 x_0 處的梯度。

  2. 在梯度方向上走一小步即可到達點 x_1(步長稱為學習率)。

  3. 返回步驟 1,重複該過程,直至收斂為止。

當然,這種演算法也存在一些缺陷,多年來這些缺陷也得到了一些改善。基於現代梯度下降最佳化器採用了許多技巧,例如自適應步長、動量等。

在實踐中計算梯度是一件很困難的事,函式經常由其他函式的組成部分構成。例如,線性層:

微積分、線性代數、機率論,這裡有份超詳細的ML數學路線圖

其中 A 是矩陣,b 和 x 是向量,σ是 sigmoid 函式(當然還有其他啟用函式)。如何計算梯度?

微積分、線性代數、機率論,這裡有份超詳細的ML數學路線圖

寫成如下的向量 - 標量函式:

微積分、線性代數、機率論,這裡有份超詳細的ML數學路線圖

g 的梯度由矩陣定義,該矩陣的第 k 行是第 k 個分量的梯度

微積分、線性代數、機率論,這裡有份超詳細的ML數學路線圖

該矩陣被稱為 g 的總導數。在該例中

微積分、線性代數、機率論,這裡有份超詳細的ML數學路線圖

包含兩個函式

微積分、線性代數、機率論,這裡有份超詳細的ML數學路線圖

微積分、線性代數、機率論,這裡有份超詳細的ML數學路線圖

定義中用到了單變數 sigmoid 分量。將函式進一步分解為從 n 維向量空間對映到實數空間的 m 個函式:

微積分、線性代數、機率論,這裡有份超詳細的ML數學路線圖

其中:

微積分、線性代數、機率論,這裡有份超詳細的ML數學路線圖

如果計算總導數,則會看到:

微積分、線性代數、機率論,這裡有份超詳細的ML數學路線圖

這是多元函式的鏈式規則,具有通用性。沒有它就沒有簡單的方法來計算神經網路的梯度。而神經網路是許多函式的組合。

高階導數

與單變數的情況類似,梯度和導數在確定空間中的給定點是區域性極小值還是極大值方面(或者兩者都不是)也起作用。

舉一個具體的例子,訓練神經網路等效於最小化引數訓練資料上的損失函式。這就是找到最佳引數配置 w 的目的:

微積分、線性代數、機率論,這裡有份超詳細的ML數學路線圖

其中:

微積分、線性代數、機率論,這裡有份超詳細的ML數學路線圖

分別是神經網路損失函式

對於 n 個變數的通用可微分向量 - 標量函式,存在 n^2 個二階導數。形成 Hessian 矩陣。

微積分、線性代數、機率論,這裡有份超詳細的ML數學路線圖

在多變數的情況下,Hessian 的行列式充當二階導數的角色。類似地,它還可以用來判斷臨界點(即所有導數均為零的情況)是最小值、最大值、鞍點中的哪一種。

關於多元微積分有很多很棒的線上課程。課程地址:

  • https://www.youtube.com/playlist?list=PLSQl0a2vh4HC5feHa6Rc5c0wbRTx56nF7,

  • https://www.youtube.com/playlist?list=PL4C4C8A7D06566F38。

現在我們準備開始最後一個主題:機率論!

微積分、線性代數、機率論,這裡有份超詳細的ML數學路線圖

機率論

機率論是將機率數學化的學科,它是所有科學領域的理論基礎。

假設擲硬幣,有 50%的機率(或 0.5 的機率)為正面。重複實驗 10 次後,得到多少個正面?如果你回答了 5,你就錯了。正面機率為 0.5 並不能保證每兩次投擲都有一面是正面。相反,這意味著如果你重複實驗 n 次,其中 n 是一個非常大的數字,那麼正面的數量將非常接近 n/2。

為了更好的掌握機率論,推薦一篇文章:https://towardsdatascience.com/the-mathematical-foundations-of-probability-beb8d8426651

微積分、線性代數、機率論,這裡有份超詳細的ML數學路線圖

除了基礎知識之外,你還需要了解一些高階知識,首先是期望值和熵。

期望值

假設你和朋友玩遊戲。你擲一個經典的六邊形骰子,如果結果是 1 或 2,你將贏得 300 美元。否則,你就輸 200 美元。如果你玩這個遊戲的時間夠長,你每輪的平均收入是多少?你應該玩這個遊戲嗎?

那麼,你有 1/3 的機率贏 300 美元,2/3 的機率輸 200 美元。也就是說,如果 X 是編碼擲骰子結果的隨機變數,那麼:

微積分、線性代數、機率論,這裡有份超詳細的ML數學路線圖

通常來說,當用於離散型隨機變數時,期望值定義如下:

微積分、線性代數、機率論,這裡有份超詳細的ML數學路線圖

當用於實值連續型隨機變數時,定義如下

微積分、線性代數、機率論,這裡有份超詳細的ML數學路線圖

機器學習中,訓練神經網路所用的損失函式在某種程度上是期望值。

大數定律

人們常常錯誤地把某些現象歸因於大數定律。例如,那些連輸的賭徒相信,根據大數定律,他們很快就會贏。這是完全錯誤的。讓我們看看這到底是什麼。假如:

微積分、線性代數、機率論,這裡有份超詳細的ML數學路線圖

是代表同一實驗中獨立重複的隨機變數 (例如,擲骰子或扔硬幣)。

本質上,大數定律指出:

微積分、線性代數、機率論,這裡有份超詳細的ML數學路線圖

從長遠來看,結果平均值等於期望值。

給出的一種解釋是,如果一個隨機事件重複了很多次,則單個結果可能無關緊要。因此,如果你在賭場玩一個期望值為負的遊戲,那麼偶爾也會贏。但大數定律意味著你會賠錢。

此外,隨機梯度下降中 LLN 很重要。

資訊理論

讓我們玩個遊戲。玩家心理想著 1-1024 的任意數字,然後你來猜。你可以問問題,但你的目標是使用盡可能少的問題。你需要多少問題?

如果你玩得很聰明,則可以使用二分搜尋方法處理問題。首先你可能會問:這個數字在 1 和 512 之間嗎?這樣一來,搜尋空間就減少了一半。使用此策略,你可以在

微積分、線性代數、機率論,這裡有份超詳細的ML數學路線圖

問題中找出答案。

但是如果在選數字時沒有使用均勻分佈呢?例如,可以用泊松分佈。

微積分、線性代數、機率論,這裡有份超詳細的ML數學路線圖

泊松分佈的機率質量函式。圖源:https://en.wikipedia.org/wiki/Poisson_distribution

使用泊松分佈可能需要較少的問題,因為分佈往往集中在特定的點上(這取決於引數)。

在極端情況下,當分佈集中在一個數字上時,你不需要任何問題來猜它。一般來說,問題的數量取決於分佈所攜帶的資訊。均勻分佈包含的資訊量最少,而奇異分佈是純資訊。

熵是一種量化的方法。當用於離散隨機變數時,定義如下:

微積分、線性代數、機率論,這裡有份超詳細的ML數學路線圖

當用於連續實值變數,定義如下:

微積分、線性代數、機率論,這裡有份超詳細的ML數學路線圖

如果你以前使用過分類模型,可能會遇到交叉熵損失,定義如下:

微積分、線性代數、機率論,這裡有份超詳細的ML數學路線圖

其中 P 是真實值(集中到單個類的分佈),而 P^ 表示類預測。這衡量了預測與實際情況相比有多少資訊。當預測相匹配時,交叉熵損失為零。

另一個常用量是 Kullback-Leibler 散度(KL 散度),定義為:

微積分、線性代數、機率論,這裡有份超詳細的ML數學路線圖

其中 P 和 Q 是兩個機率分佈。這本質上是交叉熵減去熵,熵可以被認為是對兩個分佈的不同程度的量化。例如,在訓練生成式對抗網路時,這是很有用的。最小化 KL 散度可以保證兩個分佈是相似的。

在這裡推薦兩本書:

  • Pattern Recognition and Machine Learning by Christopher Bishop 

  • The Elements of Statistical Learning by Trevor Hastie, Robert Tibshirani, and Jerome Friedman

基於此,我們回顧了理解神經網路所必需的數學知識。但是要真正理解神經網路是如何工作的,你還必須學習一些最佳化和數理統計。這些科目建立在數學的基礎之上,在這就不進行介紹了。

原文連結:https://towardsdatascience.com/the-roadmap-of-mathematics-for-deep-learning-357b3db8569b

相關文章