展會信息港展會大全

微積分、線性代數(shù)、概率論,這里有份超詳細的ML數(shù)學(xué)路線圖
來源:互聯(lián)網(wǎng)   發(fā)布日期:2020-11-11 09:08:11   瀏覽:52364次  

導(dǎo)讀:選自towardsdatascience 作者:Tivadar Danka 機器之心編譯 編輯:小舟、陳萍 大學(xué)時期學(xué)的數(shù)學(xué)現(xiàn)在可能派上用場了,機器學(xué)習(xí)背后的原理涉及許多數(shù)學(xué)知識。深入挖掘一下,你會發(fā)現(xiàn),線性代數(shù)、微積分和概率論等都和機器學(xué)習(xí)背后的算法息息相關(guān)。 機器學(xué)習(xí)算...

選自towardsdatascience

作者:Tivadar Danka

機器之心編譯

編輯:小舟、陳萍

大學(xué)時期學(xué)的數(shù)學(xué)現(xiàn)在可能派上用場了,機器學(xué)習(xí)背后的原理涉及許多數(shù)學(xué)知識。深入挖掘一下,你會發(fā)現(xiàn),線性代數(shù)、微積分和概率論等都和機器學(xué)習(xí)背后的算法息息相關(guān)。

機器學(xué)習(xí)算法背后的數(shù)學(xué)知識你了解嗎?在構(gòu)建模型的過程中,如果想超越其基準性能,那么熟悉基本細節(jié)可能會大有幫助,尤其是在想要打破 SOTA 性能時,尤其如此。

機器學(xué)習(xí)背后的原理往往涉及高等數(shù)學(xué)。例如,隨機梯度下降算法建立在多變量微積分和概率論的基礎(chǔ)上。因此掌握基礎(chǔ)的數(shù)學(xué)理論對于理解機器學(xué)習(xí)模型很重要。但如果你是沒有數(shù)學(xué)基礎(chǔ)的初學(xué)者,這里有一份學(xué)習(xí)路線圖,帶你從零開始深入理解神經(jīng)網(wǎng)絡(luò)的數(shù)學(xué)原理。

大多數(shù)機器學(xué)習(xí)都建立在三種數(shù)學(xué)理論的基礎(chǔ)上:線性代數(shù)、微積分和概率論,其中概率論的理論又基于線性代數(shù)和微積分

微積分

微積分包括函數(shù)的微分和積分。神經(jīng)網(wǎng)絡(luò)本質(zhì)上是一個可微函數(shù),因此微積分是訓(xùn)練神經(jīng)網(wǎng)絡(luò)的基本工具。

首先,函數(shù)的導(dǎo)數(shù)定義如下

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

將函數(shù)的導(dǎo)數(shù)可視化。

微分可以用來優(yōu)化函數(shù):導(dǎo)數(shù)在局部極大值和極小值處為零。(也有例外,例如:f(x) = x,x=0),導(dǎo)數(shù)為零的點稱為臨界點。臨界點是最小值還是最大值可以通過查看二階導(dǎo)數(shù)來確定:

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

上式告訴我們?nèi)绾斡嬎銖?fù)合函數(shù)的導(dǎo)數(shù)。

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

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

因為當(dāng)函數(shù)是負的時候,這里的面積也有一個負號:

在 -π到π的區(qū)間內(nèi),正弦函數(shù)曲線下的有符號面積。

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

MIT 課程鏈接:https://www.youtube.com/playlist?list=PL590CCC2BC5AF3BC1

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

線性代數(shù)

神經(jīng)網(wǎng)絡(luò)本質(zhì)上是函數(shù),它是用微積分工具訓(xùn)練的。然而,又涉及線性代數(shù),如矩陣乘法。線性代數(shù)是一門涉及機器學(xué)習(xí)許多方面的龐大學(xué)科,因此這將是一個重要的部分。

向量空間

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

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

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

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

范數(shù)空間

如果你很了解向量空間,下一步就是理解怎樣測量向量的大校在默認情況下,向量空間本身并沒有提供這樣的工具。但我們有:

這是一種特殊的范數(shù),通常,如果存在函數(shù),則向量空間 V 是范數(shù)的:

范數(shù)為:

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

當(dāng) p=2 時,我們得到上述特例以及最高范數(shù)。

有時,例如對于 p = 2,范數(shù)來自所謂的內(nèi)積,即雙線性函數(shù)。

因此:

具有內(nèi)積的向量空間稱為內(nèi)積空間。經(jīng)典的是歐幾里得積。

每一個內(nèi)積都可以變成一個范數(shù)。

當(dāng)兩個向量的內(nèi)積為零時,這兩個向量彼此正交。

基正交 / 正交基

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

其中 e1,e2 函數(shù)如下

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

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

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

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

線性變換

與向量空間非常相關(guān)的是線性變換(linear transformation)。如果你之前了解神經(jīng)網(wǎng)絡(luò),就應(yīng)該知道其基本的構(gòu)建基塊是以下形式的層:

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

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

對于 V 中的所有 x、y 值都成立,而且都是實數(shù)。

矩陣及其運算

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

下圖演示了計算過程:

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

決定因素

行列式是線性代數(shù)中最具挑戰(zhàn)性的概念之一。要了解這一概念,請觀看下面的視頻。

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

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

標(biāo)準的線性代數(shù)課程通常以特征值 / 特征向量和一些特殊的矩陣分解(如奇異值分解)結(jié)束。假設(shè)我們有一個矩陣 A,并且如果有一個向量 x(稱為特征向量),那么λ就是矩陣 A 的特征值:

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

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

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

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

線性代數(shù)有許多教授方法,本文列出的學(xué)習(xí)路徑是受 Sheldon Axler 教材《Linear Algebra Done Right》的啟發(fā)。對于在線講座,MIT 的網(wǎng)絡(luò)公開課值得推薦。

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

MIT 的網(wǎng)絡(luò)公開課地址:https://www.youtube.com/playlist?list=PL49CF3715CB9EF31D

多變量運算

多變量運算中將線性代數(shù)和微積分結(jié)合在一起,為訓(xùn)練神經(jīng)網(wǎng)絡(luò)的主要工具奠定了基矗從數(shù)學(xué)上講,神經(jīng)網(wǎng)絡(luò)只是多個變量的函數(shù)(盡管變量數(shù)量可達數(shù)百萬)。

與單變量運算相似,兩個重點是微分和積分。假設(shè)存在映射:

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

兩變量的函數(shù)圖像。

多變量微分

在單變量中,導(dǎo)數(shù)是切線的斜率。那么在此應(yīng)該如何定義切線呢?表面上的一個點處不只有一條切線,而是多條。這些切線中有兩條特殊的切線:分別為平行于 x-z 平面的切線和平行于 y-z 平面的切線。

這兩條切線的斜率由偏導(dǎo)數(shù)決定,如下:

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

切平面。

梯度

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

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

計算當(dāng)前位置 x_0 處的梯度。

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

返回步驟 1,重復(fù)該過程,直至收斂為止。

當(dāng)然,這種算法也存在一些缺陷,多年來這些缺陷也得到了一些改善;诂F(xiàn)代梯度下降的優(yōu)化器采用了許多技巧,例如自適應(yīng)步長、動量等。

在實踐中計算梯度是一件很困難的事,函數(shù)經(jīng)常由其他函數(shù)的組成部分構(gòu)成。例如,線性層:

其中 A 是矩陣,b 和 x 是矢量,σ是 sigmoid 函數(shù)(當(dāng)然還有其他激活函數(shù))。如何計算梯度?

寫成如下的矢量 - 標(biāo)量函數(shù):

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

該矩陣被稱為 g 的總導(dǎo)數(shù)。在該例中

包含兩個函數(shù)

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

其中:

如果計算總導(dǎo)數(shù),則會看到:

這是多元函數(shù)的鏈式規(guī)則,具有通用性。沒有它就沒有簡單的方法來計算神經(jīng)網(wǎng)絡(luò)的梯度。而神經(jīng)網(wǎng)絡(luò)是許多函數(shù)的組合。

高階導(dǎo)數(shù)

與單變量的情況類似,梯度和導(dǎo)數(shù)在確定空間中的給定點是局部極小值還是極大值方面(或者兩者都不是)也起作用。

舉一個具體的例子,訓(xùn)練神經(jīng)網(wǎng)絡(luò)等效于最小化參數(shù)訓(xùn)練數(shù)據(jù)上的損失函數(shù)。這就是找到最佳參數(shù)配置 w 的目的:

其中:

分別是神經(jīng)網(wǎng)絡(luò)和損失函數(shù)。

對于 n 個變量的通用可微分矢量 - 標(biāo)量函數(shù),存在 n^2 個二階導(dǎo)數(shù)。形成 Hessian 矩陣。

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

關(guān)于多元微積分有很多很棒的在線課程。課程地址:

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

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

現(xiàn)在我們準備開始最后一個主題:概率論!

概率論

概率論是將機率數(shù)學(xué)化的學(xué)科,它是所有科學(xué)領(lǐng)域的理論基矗

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

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

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

期望值

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

那么,你有 1/3 的概率贏 300 美元,2/3 的概率輸 200 美元。也就是說,如果 X 是編碼擲骰子結(jié)果的隨機變量,那么:

通常來說,當(dāng)用于離散型隨機變量時,期望值定義如下:

當(dāng)用于實值連續(xù)型隨機變量時,定義如下

在機器學(xué)習(xí)中,訓(xùn)練神經(jīng)網(wǎng)絡(luò)所用的損失函數(shù)在某種程度上是期望值。

大數(shù)定律

人們常常錯誤地把某些現(xiàn)象歸因于大數(shù)定律。例如,那些連輸?shù)馁徒相信,根據(jù)大數(shù)定律,他們很快就會贏。這是完全錯誤的。讓我們看看這到底是什么。假如:

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

本質(zhì)上,大數(shù)定律指出:

從長遠來看,結(jié)果平均值等于期望值。

給出的一種解釋是,如果一個隨機事件重復(fù)了很多次,則單個結(jié)果可能無關(guān)緊要。因此,如果你在賭場玩一個期望值為負的游戲,那么偶爾也會贏。但大數(shù)定律意味著你會賠錢。

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

信息論

讓我們玩?zhèn)游戲。玩家心理想著 1-1024 的任意數(shù)字,然后你來猜。你可以問問題,但你的目標(biāo)是使用盡可能少的問題。你需要多少問題?

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

問題中找出答案。

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

泊松分布的概率質(zhì)量函數(shù)。圖源:https://en.wikipedia.org/wiki/Poisson_distribution

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

在極端情況下,當(dāng)分布集中在一個數(shù)字上時,你不需要任何問題來猜它。一般來說,問題的數(shù)量取決于分布所攜帶的信息。均勻分布包含的信息量最少,而奇異分布是純信息。

熵是一種量化的方法。當(dāng)用于離散隨機變量時,定義如下:

當(dāng)用于連續(xù)實值變量,定義如下:

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

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

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

其中 P 和 Q 是兩個概率分布。這本質(zhì)上是交叉熵減去熵,熵可以被認為是對兩個分布的不同程度的量化。例如,在訓(xùn)練生成式對抗網(wǎng)絡(luò)時,這是很有用的。最小化 KL 散度可以保證兩個分布是相似的。

在這里推薦兩本書:

Pattern Recognition and Machine Learning by Christopher Bishop

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

基于此,我們回顧了理解神經(jīng)網(wǎng)絡(luò)所必需的數(shù)學(xué)知識。但是要真正理解神經(jīng)網(wǎng)絡(luò)是如何工作的,你還必須學(xué)習(xí)一些優(yōu)化和數(shù)理統(tǒng)計。這些科目建立在數(shù)學(xué)的基礎(chǔ)之上,在這就不進行介紹了。

Amazon SageMaker實戰(zhàn)教程(視頻回顧)

Amazon SageMaker 是一項完全托管的服務(wù),可以幫助機器學(xué)習(xí)開發(fā)者和數(shù)據(jù)科學(xué)家快速構(gòu)建、訓(xùn)練和部署模型。Amazon SageMaker 完全消除了機器學(xué)習(xí)過程中各個步驟的繁重工作,讓開發(fā)高質(zhì)量模型變得更加輕松。

10月15日-10月22日,機器之心聯(lián)合AWS舉辦3次線上分享,全程回顧如下,復(fù)制鏈接到瀏覽器即可觀看。


贊助本站

相關(guān)內(nèi)容
AiLab云推薦
推薦內(nèi)容
展開

熱門欄目HotCates

Copyright © 2010-2024 AiLab Team. 人工智能實驗室 版權(quán)所有    關(guān)于我們 | 聯(lián)系我們 | 廣告服務(wù) | 公司動態(tài) | 免責(zé)聲明 | 隱私條款 | 工作機會 | 展會港