機(jī)器學(xué)習(xí)與深度學(xué)習(xí)中的數(shù)學(xué)知識(shí)點(diǎn)匯總
在機(jī)器學(xué)習(xí)與深度學(xué)習(xí)中需要大量使用數(shù)學(xué)知識(shí),這是給很多初學(xué)帶來困難的主要原因之一。此前SIGAI的公眾號(hào)已經(jīng)寫過“學(xué)好機(jī)器學(xué)習(xí)需要哪些數(shù)學(xué)知識(shí)”的文章,由于時(shí)間倉(cāng)促,還不夠完整。今天重新整理了機(jī)器學(xué)習(xí)與深度學(xué)習(xí)中的主要知識(shí)點(diǎn),做到精準(zhǔn)覆蓋,內(nèi)容最小化,以減輕學(xué)習(xí)的負(fù)擔(dān)同時(shí)又保證學(xué)習(xí)的效果。這些知識(shí)點(diǎn)是筆者長(zhǎng)期摸索總結(jié)出來的,相信弄懂了這些數(shù)學(xué)知識(shí),數(shù)學(xué)將不再成為你學(xué)好機(jī)器學(xué)習(xí)和深度學(xué)習(xí)的障礙。
本文可以配合《機(jī)器學(xué)習(xí)-原理,算法與應(yīng)用》,清華大學(xué)出版社,雷明著一書閱讀。在這本書中對(duì)有監(jiān)督學(xué)習(xí),聚類,降維,半監(jiān)督學(xué)習(xí),強(qiáng)化學(xué)習(xí)的主要算法進(jìn)行了細(xì)致、****的推導(dǎo)和證明。對(duì)于所需的數(shù)學(xué)知識(shí),單獨(dú)用一章做了簡(jiǎn)潔地介紹。
本文列出的數(shù)學(xué)知識(shí)點(diǎn)已經(jīng)寫成了《機(jī)器學(xué)習(xí)的數(shù)學(xué)教程》,以后有機(jī)會(huì)的話可能會(huì)出版,以幫助大家學(xué)習(xí)。
所需的數(shù)學(xué)知識(shí)
在之前的公眾號(hào)文章中已經(jīng)說過,機(jī)器學(xué)習(xí)和深度學(xué)習(xí)中所用的數(shù)學(xué)知識(shí)主要來自以下幾門課:
1.高等數(shù)學(xué)/微積分
2.線性代數(shù)與矩陣論
3.概率論與信息論
4.最優(yōu)化方法
5.圖論/離散數(shù)學(xué)
除此之外,有些理論和方法可能會(huì)用到更深的數(shù)學(xué)知識(shí),如實(shí)變函數(shù),泛函分析,微分幾何,偏微分方程等,但對(duì)一般的方法和理論,這些知識(shí)不是必須的,因此我們可以忽略它們。對(duì)大多數(shù)人來說,沒必要為了那些不常見的方法和理論而去學(xué)這些復(fù)雜的數(shù)學(xué)知識(shí),這會(huì)大幅度的增加學(xué)習(xí)的成本與難度。
前面所列的5門數(shù)學(xué)知識(shí)中,矩陣論,信息論,最優(yōu)化方法是國(guó)內(nèi)理工科本科生基本上沒有學(xué)過的。圖論除了計(jì)算機(jī)類的專業(yè)之外,一般也不會(huì)學(xué)。如果想全面而系統(tǒng)的學(xué)好機(jī)器學(xué)習(xí)與深度學(xué)習(xí),補(bǔ)上這些數(shù)學(xué)知識(shí)是必須的。
微積分
微積分是現(xiàn)代數(shù)學(xué)的基礎(chǔ),線性代數(shù),矩陣論,概率論,信息論,最優(yōu)化方法等數(shù)學(xué)課程都需要用到微積分的知識(shí)。單就機(jī)器學(xué)習(xí)和深度學(xué)習(xí)來說,更多用到的是微分。積分基本上只在概率論中被使用,概率密度函數(shù),分布函數(shù)等概念和計(jì)算都要借助于積分來定義或計(jì)算。
幾乎所有的機(jī)器學(xué)習(xí)算法在訓(xùn)練或者預(yù)測(cè)時(shí)都是求解最優(yōu)化問題,因此需要依賴于微積分來求解函數(shù)的極值,而模型中某些函數(shù)的選取,也有數(shù)學(xué)性質(zhì)上的考量。對(duì)于機(jī)器學(xué)習(xí)而言,微積分的主要作用是:
1.求解函數(shù)的極值
2.分析函數(shù)的性質(zhì)
下面列出機(jī)器學(xué)習(xí)和深度學(xué)習(xí)中所需的微積分知識(shí)點(diǎn),顯然,不是課本里所講的所有內(nèi)容都是需要的,我們只列出所必須的。
極限。極限是高等數(shù)學(xué)和初等數(shù)學(xué)的分水嶺,也是微積分這座大廈的基石,是導(dǎo)數(shù)、微分、積分等概念的基礎(chǔ)。雖然在機(jī)器學(xué)習(xí)里不直接用到極限的知識(shí),但要理解導(dǎo)數(shù)和積分,它是必須的。
上確界與下確界。這一對(duì)概念對(duì)工科的微積分來說是陌生的,但在機(jī)器學(xué)習(xí)中會(huì)經(jīng)常用到,不要看到論文或書里的sup和inf不知道什么意思。
導(dǎo)數(shù)。其重要性眾所周知,求函數(shù)的極值需要它,分析函數(shù)的性質(zhì)需要它。典型的如梯度下降法的推導(dǎo),logistic函數(shù)導(dǎo)數(shù)的計(jì)算。熟練地計(jì)算函數(shù)的導(dǎo)數(shù)是基本功。
Lipschitz連續(xù)性。這一概念在工科教材中同樣沒有提及,但對(duì)分析算法的性質(zhì)卻很有用,在GAN,深度學(xué)習(xí)算法的穩(wěn)定性、泛化性能分析中都有用武之地。
導(dǎo)數(shù)與函數(shù)的單調(diào)性。某些算法的推導(dǎo),如神經(jīng)網(wǎng)絡(luò)的激活函數(shù),AdaBoost算法,都需要研究函數(shù)的單調(diào)性。
導(dǎo)數(shù)與函數(shù)的極值。這個(gè)在機(jī)器學(xué)習(xí)中處于中心地位,大部分優(yōu)化問題都是連續(xù)優(yōu)化問題,因此可以通過求導(dǎo)數(shù)為0的點(diǎn)而求函數(shù)的極值,以實(shí)現(xiàn)最小化損失函數(shù),最大化似然函數(shù)等目標(biāo)。
導(dǎo)數(shù)與函數(shù)的凹凸性。在凸優(yōu)化,Jensen不等式的證明中都有它的應(yīng)用。
泰勒公式。又一個(gè)核心知識(shí)點(diǎn)。在優(yōu)化算法中廣泛使用,從梯度下降法,牛頓法,擬牛頓法,到AdaBoost算法,梯度提升算法,XGBoost的推導(dǎo)都離不開它。
不定積分。積分在機(jī)器學(xué)習(xí)中使用的相對(duì)較少,主要用于概率的計(jì)算中,它是定積分的基礎(chǔ)。
定積分。包括廣義積分,被用于概率論的計(jì)算中。機(jī)器學(xué)習(xí)中很大一類算法是概率型算法,如貝葉斯分類器,概率圖模型,變分推斷等。這些地方都涉及到對(duì)概率密度函數(shù)進(jìn)行積分。
變上限積分。分布函數(shù)是典型的變上線積分函數(shù),同樣主要用于概率計(jì)算中。
牛頓-萊布尼茲公式。在機(jī)器學(xué)習(xí)中很少直接使用,但它是微積分中最重要的公式之一,為定積分的計(jì)算提供了依據(jù)。
常微分方程。在某些論文中會(huì)使用,但一般算法用不到。
偏導(dǎo)數(shù)。重要性不用多說,機(jī)器學(xué)習(xí)里絕大部分函數(shù)都是多元函數(shù),要求其極值,偏導(dǎo)數(shù)是繞不開的。
梯度。決定了多元函數(shù)的單調(diào)性和極值,梯度下降法的推導(dǎo)離不開它。幾乎所有連續(xù)優(yōu)化算法都需要計(jì)算函數(shù)的梯度值,且以尋找梯度為0的點(diǎn)作為目標(biāo)。
高階偏導(dǎo)數(shù)。確定函數(shù)的極值離不開它,光有梯度值還無法確定函數(shù)的極值。
鏈?zhǔn)椒▌t。同樣使用廣泛,各種神經(jīng)網(wǎng)絡(luò)的反向傳播算法都依賴于鏈?zhǔn)椒▌t。
Hessian矩陣。決定了函數(shù)的極值和凹凸性,對(duì)使用工科教材的同學(xué)可能是陌生的。
多元函數(shù)的極值判別法則。雖然不直接使用,但對(duì)理解最優(yōu)化方法至關(guān)重要。
多元函數(shù)的凹凸性判別法則。證明一個(gè)問題是凸優(yōu)化問題是離不開它的。
Jacobian矩陣。工科教材一般沒有介紹這一概念,但和Hessian矩陣一樣,并不難理解,使用它可以簡(jiǎn)化多元復(fù)合函數(shù)的求導(dǎo)公式,在反向傳播算法中廣泛使用。
向量與矩陣求導(dǎo)。常見的一次函數(shù),二次函數(shù)的梯度,Hessian矩陣的計(jì)算公式要爛熟于心,推導(dǎo)并不復(fù)雜。
泰勒公式。理解梯度下降法,牛頓法的優(yōu)化算法的基石。
多重積分。主要用于概率論中,計(jì)算隨機(jī)向量的積分,如正態(tài)分布。
偏微分方程。在某些理論推導(dǎo)中可能會(huì)使用,如變分法中的歐拉-拉格朗日方程。
參考書目:
微積分用經(jīng)典的同濟(jì)7版就可以了,這是國(guó)內(nèi)很多高校工科專業(yè)的微積分教材。如果想深入學(xué)習(xí),可以看數(shù)學(xué)分析的教材,這是數(shù)學(xué)系的微積分。北大張筑生先生所著的數(shù)學(xué)分析可謂是國(guó)內(nèi)這方面教材的精品。
線性代數(shù)與矩陣論
相對(duì)于微積分,線性代數(shù)似乎用的更多,而且有一部分屬于矩陣論/矩陣分析的范疇,超出了工科線性代數(shù)教材的范圍。下面列出線性代數(shù)和矩陣論的常用知識(shí)點(diǎn)。
向量及其運(yùn)算。機(jī)器學(xué)習(xí)算法的輸入很多時(shí)候是向量,如樣本的特征向量。因此熟練掌握向量以及常用的運(yùn)算是理解機(jī)器學(xué)習(xí)的基礎(chǔ)。
矩陣及其運(yùn)算。與向量一樣,是線性代數(shù)的核心概念,各種運(yùn)算,常用矩陣,必須爛熟于心。
行列式。直接使用的少,在概率論,某些模型的推導(dǎo)中偶爾使用。
線性方程組。直接使用的少,但這是線性代數(shù)的核心內(nèi)容。
特征值與特征向量。在機(jī)器學(xué)習(xí)中被廣泛使用,很多問題最后歸結(jié)于求解矩陣的特征值和特征向量。如流形學(xué)習(xí),譜聚類,線性判別分析,主成分分析等。
廣義特征值。工科線性代數(shù)教材一般不提及此概念,但在流形學(xué)習(xí),譜聚類等算法中經(jīng)常用到它。
Rayleigh商。工科教材一般不提及它。在某些算法的推導(dǎo)過程中會(huì)用到,如線性判別分析。
矩陣的譜范數(shù)與條件數(shù)。工科教材一般不提及它。在某些算法的分析中會(huì)用到它,它刻畫了矩陣的重要性質(zhì)。
二次型。很多目標(biāo)函數(shù)是二次函數(shù),因此二次型的地位不言而喻。
Cholesky分解。某些算法的推導(dǎo)中會(huì)用到它,工科教材一般不提及它。
特征值分解。對(duì)機(jī)器學(xué)習(xí)非常重要,很多問題最后歸結(jié)于特征值分解,如主成分分析,線性判別分析等。
奇異值分解。在機(jī)器學(xué)習(xí)中廣泛使用,從正態(tài)貝葉斯分類器,到主題模型等,都有它的影子。
參考書目:
線性代數(shù)可以看矩陣分析,如果想更全面系統(tǒng)的學(xué)習(xí),可以看斯蒂文的這本線性代數(shù)。
概率論與信息論
概率論與信息論在機(jī)器學(xué)習(xí)中用得非常多。概率論的知識(shí),一般不超出工科教材的范疇。而信息論是很多同學(xué)沒有學(xué)過的,不過只要你理解了微積分和概率論,理解這些概念并不是難事。下面列出常用的概率論與信息論知識(shí)點(diǎn)。
隨機(jī)事件與概率。這是理解隨機(jī)變量的基礎(chǔ),也是概率論中最基本的知識(shí)。
條件概率與獨(dú)立性。條件概率非常重要,在機(jī)器學(xué)習(xí)中,只要有概率模型的地方,通常離不開它。獨(dú)立性在很多地方也被使用,如概率論圖模型。
條件獨(dú)立。在概率論圖模型中廣泛使用,一定要理解它。
全概率公式?;A(chǔ)公式,地位不用多說。
貝葉斯公式。在機(jī)器學(xué)習(xí)的概率型算法中處于靈魂地位,幾乎所有生成模型都要用到它。
離散型隨機(jī)變量與連續(xù)型隨機(jī)變量。重要性不用多說,概率質(zhì)量函數(shù),概率密度函數(shù),分布函數(shù),一定要熟練掌握。
數(shù)學(xué)期望。非常重要,好多地方都有它的影子。
方差與標(biāo)準(zhǔn)差。非常重要,刻畫概率分布的重要指標(biāo)。
Jensen不等式。在很多推導(dǎo)和證明中都要用它,如EM算法,變分推斷。
常用的概率分布,包括均勻分布,正態(tài)分布,伯努利分布,二項(xiàng)分布,多項(xiàng)分布,t分布等,在各種機(jī)器學(xué)習(xí)算法中廣泛使用。
隨機(jī)向量。多元的隨機(jī)變量,在實(shí)際中更有用。
協(xié)方差。經(jīng)常使用的一個(gè)概念,如主成分分析,多元正態(tài)分布中。
參數(shù)估計(jì)。包括最大似然估計(jì),最大后驗(yàn)概率估計(jì),貝葉斯估計(jì),核密度估計(jì),一定要弄清楚它們是怎么回事。
隨機(jī)算法,包括采樣算法,遺傳算法,蒙特卡洛算法,在機(jī)器學(xué)習(xí)中也經(jīng)常使用。
信息論中的一些概念,包括熵,交叉熵,KL散度,JS散度,互信息,信息增益,一定要深刻理解這些概念。如果你不理解KL散度,那怎么理解變分推斷和VAE?
參考書目:
概率論國(guó)內(nèi)理工科專業(yè)使用最多的是浙大版的教材:
《概率論與數(shù)理統(tǒng)計(jì)》,國(guó)外的書籍推薦《信息論基礎(chǔ)》
最優(yōu)化方法
前面已經(jīng)說過,最優(yōu)化方法是機(jī)器學(xué)習(xí)的靈魂,用于確定模型的參數(shù)或預(yù)測(cè)結(jié)果。不幸的是,工科專業(yè)一般沒有學(xué)過這門課。不過只要你理解了微積分和線性代數(shù),并不難推導(dǎo)出這些算法。下面列出常用的最優(yōu)化方法知識(shí)點(diǎn):
梯度下降法。最簡(jiǎn)單的優(yōu)化算法,但卻很有用,尤其在深度學(xué)習(xí)中。
隨機(jī)梯度下降法。在深度學(xué)習(xí)中的重要性婦孺皆知。
最速下降法。梯度下降法的改進(jìn)型,是理解梯度提升等算法的基礎(chǔ)。
梯度下降法的改進(jìn)型。如AdaGrad,AdaDelta,Adam等,使用深度學(xué)習(xí)開源庫的時(shí)候經(jīng)常會(huì)看到這些名字。
牛頓法。二階優(yōu)化算法的典型代表,只是在深度學(xué)習(xí)中用的少。在logistic回歸等算法的訓(xùn)練中會(huì)用到它。
擬牛頓法。牛頓法的改進(jìn),在條件隨機(jī)場(chǎng)等模型的訓(xùn)練中會(huì)用到L-BFGS等算法。
坐標(biāo)下降法。在logistic回歸等模型的訓(xùn)練中會(huì)用到它,不難理解。
凸優(yōu)化。最優(yōu)化中的核心概念之一,如果一個(gè)問題被證明為凸優(yōu)化問題,恭喜你,它基本上可以較好的解決。
拉格朗日乘數(shù)法。在各種算分的推導(dǎo)中經(jīng)常使用,如主成分分析,線性判別分析等,如果不熟練掌握它,你將非常艱難。
KKT條件。拉格朗日乘數(shù)法擴(kuò)展到帶不等式約束后的版本,在SVM的推導(dǎo)中將會(huì)使用。
拉格朗日對(duì)偶。不太好理解的知識(shí)點(diǎn),在SVM的推導(dǎo)中經(jīng)常用到,不過套公式并不難。
多目標(biāo)優(yōu)化。一般很少使用,在多目標(biāo)NAS中會(huì)使用它,如帕累托最優(yōu)等概念。
變分法。用于求解泛函的極值,在某些理論推導(dǎo)中會(huì)用到它,如通過變分法可以證明在均值和方差一定的情況下,正態(tài)分布的熵最大。變分推斷中也會(huì)用到此概念。如果熟練的掌握了微積分,推導(dǎo)出歐拉-拉格朗日方程并不困難。
參考書目:
最優(yōu)化方法可以參考下面兩本經(jīng)典教材:
圖論
機(jī)器學(xué)習(xí)中的某些問題可以用圖論的方法解決,如流形學(xué)習(xí),譜聚類。某些算法的表達(dá)也可能用到圖論的知識(shí),如深度學(xué)習(xí)中的計(jì)算圖,NAS中的網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)圖。概率圖模型讓很多初學(xué)者談虎色變,它是圖論與概率論的完美結(jié)合。下面介紹常用的圖論知識(shí)點(diǎn)。
圖的基本概念,如頂點(diǎn),邊,有向圖,無向圖等。
鄰接矩陣與加權(quán)度矩陣,圖論中的核心概念,邊一般都帶有權(quán)重的。
某些特殊的圖,如二部圖,有向無環(huán)圖等,在深度學(xué)習(xí)中經(jīng)常會(huì)用到他們。
最短路徑問題。經(jīng)典的Dijkstra算法是每個(gè)程序員必須掌握的。
拉普拉斯矩陣和歸一化拉普拉斯矩陣。比較難理解的概念,機(jī)器學(xué)習(xí)中的很多算法,如流形學(xué)習(xí),使用圖論的半監(jiān)督學(xué)習(xí),譜聚類都離不開它。理解這個(gè)矩陣和它的性質(zhì),是理解這些算法的基礎(chǔ)。
*博客內(nèi)容為網(wǎng)友個(gè)人發(fā)布,僅代表博主個(gè)人觀點(diǎn),如有侵權(quán)請(qǐng)聯(lián)系工作人員刪除。
互感器相關(guān)文章:互感器原理
電容式接近開關(guān)相關(guān)文章:電容式接近開關(guān)原理 過電壓保護(hù)器相關(guān)文章:過電壓保護(hù)器原理 電能表相關(guān)文章:電能表原理 電機(jī)保護(hù)器相關(guān)文章:電機(jī)保護(hù)器原理