很多同學(xué)談數(shù)學(xué)色變,但數(shù)學(xué)是機(jī)器學(xué)習(xí)繞不開的基礎(chǔ)知識。今天我們來談?wù)勥@個話題:學(xué)好機(jī)器學(xué)習(xí)究竟需要哪些數(shù)學(xué)知識? 先看某乎上的回答: “ 隨機(jī)過程,實分析。機(jī)器學(xué)習(xí)往深里做肯定需要用這種,高級的數(shù)學(xué)語言去對問題進(jìn)行描述。我本人對隨機(jī)和實分析,其實目前也還只是略懂,很難說,真正的徹底掌握這兩門十分強(qiáng)大的數(shù)學(xué)工具。” “我本科沒好好學(xué)泛函,到學(xué)到一些ML的方法比如kernel相關(guān)的方法的時候就凸顯出來對泛函不熟,對函數(shù)空間理解不夠的話會比較吃力。但重要性上比如前面幾個方面?!?/p> (以上為原文引用,錯別字沒有校正) 大部分讀者看到這樣的答案之后內(nèi)心是凄涼的。實變函數(shù),拓?fù)鋵W(xué),泛函分析,除了數(shù)學(xué)系之外,很少有其他專業(yè)會學(xué)這些課程。 實變函數(shù)學(xué)十遍 隨機(jī)過程隨機(jī)過 泛函分析心犯寒 我們先用不少大學(xué)流傳的順口溜壓壓驚 真的需要學(xué)習(xí)這些令人不寒而栗的課程嗎?事實上,要理解和掌握絕大部分機(jī)器學(xué)習(xí)算法和理論,尤其是對做工程應(yīng)用的人而言,所需要的數(shù)學(xué)知識大學(xué)數(shù)學(xué)老師已經(jīng)給你了: 微積分 線性代數(shù) 概率論 最優(yōu)化方法 關(guān)鍵知識點 微積分 先說微積分/高等數(shù)學(xué)。在機(jī)器學(xué)習(xí)中,微積分主要用到了微分部分,作用是求函數(shù)的極值,就是很多機(jī)器學(xué)習(xí)庫中的求解器(solver)所實現(xiàn)的功能。在機(jī)器學(xué)習(xí)里會用到微積分中的以下知識點:
其中最核心的是記住多元函數(shù)的泰勒展開公式,根據(jù)它我們可以推導(dǎo)出機(jī)器學(xué)習(xí)中常用的梯度下降法,牛頓法,擬牛頓法等一系列最優(yōu)化方法: 參考書目: 微積分用經(jīng)典的同濟(jì)7版就可以了,這是國內(nèi)很多高校工科專業(yè)的微積分教材。如果想深入學(xué)習(xí),可以看數(shù)學(xué)分析的教材,這是數(shù)學(xué)系的微積分。北大張筑生先生所著的數(shù)學(xué)分析可謂是國內(nèi)這方面教材的精品。 同濟(jì)大學(xué) 《高等數(shù)學(xué)》 張筑生 《數(shù)學(xué)分析新講》 線性代數(shù) 相比之下,線性代數(shù)用的更多。在機(jī)器學(xué)習(xí)的幾乎所有地方都有使用,具體用到的知識點有:
機(jī)器學(xué)習(xí)算法處理的數(shù)據(jù)一般都是向量、矩陣或者張量。經(jīng)典的機(jī)器學(xué)習(xí)算法輸入的數(shù)據(jù)都是特征向量,深度學(xué)習(xí)算法在處理圖像時輸入的2維的矩陣或者3維的張量。掌握這些知識會使你游刃有余。 參考書目: 線性代數(shù)同樣是同濟(jì)版的教材,如果想更全面系統(tǒng)的學(xué)習(xí),可以看斯蒂文的這本。 同濟(jì)大學(xué) 《線性代數(shù)》 Steven Leon 《線性代數(shù)》 概率論 如果把機(jī)器學(xué)習(xí)所處理的樣本數(shù)據(jù)看作隨機(jī)變量/向量,我們就可以用概率論的觀點對問題進(jìn)行建模,這代表了機(jī)器學(xué)習(xí)中很大一類方法。在機(jī)器學(xué)習(xí)里用到的概率論知識點有:
這些知識不超出普通理工科概率論教材的范圍。 參考書目: 概率論國內(nèi)理工科專業(yè)使用最多的是浙大版的教材: 《概率論與數(shù)理統(tǒng)計》 最優(yōu)化方法 最后要說的是最優(yōu)化,因為幾乎所有機(jī)器學(xué)習(xí)算法歸根到底都是在求解最優(yōu)化問題。求解最優(yōu)化問題的指導(dǎo)思想是在極值點出函數(shù)的導(dǎo)數(shù)/梯度必須為0。因此你必須理解梯度下降法,牛頓法這兩種常用的算法,它們的迭代公式都可以從泰勒展開公式中得到。如果能知道坐標(biāo)下降法、擬牛頓法就更好了。 凸優(yōu)化是機(jī)器學(xué)習(xí)中經(jīng)常會提及的一個概念,這是一類特殊的優(yōu)化問題,它的優(yōu)化變量的可行域是凸集,目標(biāo)函數(shù)是凸函數(shù)。凸優(yōu)化最好的性質(zhì)是它的所有局部最優(yōu)解就是全局最優(yōu)解,因此求解時不會陷入局部最優(yōu)解。如果一個問題被證明為是凸優(yōu)化問題,基本上已經(jīng)宣告此問題得到了解決。在機(jī)器學(xué)習(xí)中,線性回歸、嶺回歸、支持向量機(jī)、logistic回歸等很多算法求解的都是凸優(yōu)化問題。 拉格朗日對偶為帶等式和不等式約束條件的優(yōu)化問題構(gòu)造拉格朗日函數(shù),將其變?yōu)樵瓎栴},這兩個問題是等價的。通過這一步變換,將帶約束條件的問題轉(zhuǎn)換成不帶約束條件的問題。通過變換原始優(yōu)化變量和拉格朗日乘子的優(yōu)化次序,進(jìn)一步將原問題轉(zhuǎn)換為對偶問題,如果滿足某種條件,原問題和對偶問題是等價的。這種方法的意義在于可以將一個不易于求解的問題轉(zhuǎn)換成更容易求解的問題。在支持向量機(jī)中有拉格朗日對偶的應(yīng)用。 KKT條件是拉格朗日乘數(shù)法對帶不等式約束問題的推廣,它給出了帶等式和不等式約束的優(yōu)化問題在極值點處所必須滿足的條件。在支持向量機(jī)中也有它的應(yīng)用。 如果你沒有學(xué)過最優(yōu)化方法這門課也不用擔(dān)心,這些方法根據(jù)微積分和線性代數(shù)的基礎(chǔ)知識可以很容易推導(dǎo)出來。如果需要系統(tǒng)的學(xué)習(xí)這方面的知識,可以閱讀《凸優(yōu)化》,《非線性規(guī)劃》兩本經(jīng)典教材。 參考書目: 最優(yōu)化方法可以參考下面兩本經(jīng)典教材: Stephen Boyd《凸優(yōu)化》 Dimitri Bertsekas 《非線性規(guī)劃》 各種算法和理論用到的數(shù)學(xué)知識 下面我們來看典型算法和理論結(jié)論所用到的數(shù)學(xué)知識: 除流形學(xué)習(xí)需要簡單的微分幾何概念之外,深層次的數(shù)學(xué)知識如實變函數(shù),泛函分析等主要用在一些基礎(chǔ)理論結(jié)果的證明上,即使不能看懂證明過程,也不影響我們使用具體的機(jī)器學(xué)習(xí)算法。概率圖模型、流形學(xué)習(xí)中基于圖的模型會用到圖論的一些基本知識,如果學(xué)習(xí)過離散數(shù)學(xué)或者數(shù)據(jù)結(jié)構(gòu),這些概念很容易理解。 看完這些,你心里的底氣應(yīng)該更足,如果你大學(xué)數(shù)學(xué)知識還沒有還給老師,為什么還擔(dān)心因為數(shù)學(xué)而學(xué)不好機(jī)器學(xué)習(xí)呢? 本文為SIGAI原創(chuàng) |
|