學好機器學習需要哪些數學知識?
很多同學談數學色變,但數學是機器學習繞不開的基礎知識。今天我們來談談這個話題:學好機器學習究竟需要哪些數學知識?
先看某乎上的回答:
「 隨機過程,實分析。機器學習往深里做肯定需要用這種,高級的數學語言去對問題進行描述。我本人對隨機和實分析,其實目前也還只是略懂,很難說,真正的徹底掌握這兩門十分強大的數學工具。」
「我本科沒好好學泛函,到學到一些ML的方法比如kernel相關的方法的時候就凸顯出來對泛函不熟,對函數空間理解不夠的話會比較吃力。但重要性上比如前面幾個方面。」
(以上為原文引用,錯別字沒有校正)
大部分讀者看到這樣的答案之後內心是凄涼的。實變函數,拓撲學,泛函分析,除了數學系之外,很少有其他專業會學這些課程。
實變函數學十遍
隨機過程隨機過
泛函分析心犯寒
我們先用不少大學流傳的順口溜壓壓驚
真的需要學習這些令人不寒而慄的課程嗎?事實上,要理解和掌握絕大部分機器學習演算法和理論,尤其是對做工程應用的人而言,所需要的數學知識大學數學老師已經給你了:
微積分
線性代數
概率論
最優化方法
關鍵知識點
微積分
先說微積分/高等數學。在機器學習中,微積分主要用到了微分部分,作用是求函數的極值,就是很多機器學習庫中的求解器(solver)所實現的功能。在機器學習里會用到微積分中的以下知識點:
導數和偏導數的定義與計算方法
梯度向量的定義
極值定理,可導函數在極值點處導數或梯度必須為0
雅克比矩陣,這是向量到向量映射函數的偏導數構成的矩陣,在求導推導中會用到
Hessian矩陣,這是2階導數對多元函數的推廣,與函數的極值有密切的聯繫
凸函數的定義與判斷方法
泰勒展開公式
拉格朗日乘數法,用於求解帶等式約束的極值問題
其中最核心的是記住多元函數的泰勒展開公式,根據它我們可以推導出機器學習中常用的梯度下降法,牛頓法,擬牛頓法等一系列最優化方法:
參考書目:
微積分用經典的同濟7版就可以了,這是國內很多高校工科專業的微積分教材。如果想深入學習,可以看數學分析的教材,這是數學系的微積分。北大張築生先生所著的數學分析可謂是國內這方面教材的精品。
同濟大學
《高等數學》
張築生
《數學分析新講》
線性代數
相比之下,線性代數用的更多。在機器學習的幾乎所有地方都有使用,具體用到的知識點有:
向量和它的各種運算,包括加法,減法,數乘,轉置,內積
向量和矩陣的範數,L1範數和L2範數
矩陣和它的各種運算,包括加法,減法,乘法,數乘
逆矩陣的定義與性質
行列式的定義與計算方法
二次型的定義
矩陣的正定性
矩陣的特徵值與特徵向量
矩陣的奇異值分解
線性方程組的數值解法,尤其是共軛梯度法
機器學習演算法處理的數據一般都是向量、矩陣或者張量。經典的機器學習演算法輸入的數據都是特徵向量,深度學習演算法在處理圖像時輸入的2維的矩陣或者3維的張量。掌握這些知識會使你遊刃有餘。
參考書目:
線性代數同樣是同濟版的教材,如果想更全面系統的學習,可以看斯蒂文的這本。
同濟大學
《線性代數》
Steven Leon
《線性代數》
概率論
如果把機器學習所處理的樣本數據看作隨機變數/向量,我們就可以用概率論的觀點對問題進行建模,這代表了機器學習中很大一類方法。在機器學習里用到的概率論知識點有:
隨機事件的概念,概率的定義與計算方法
隨機變數與概率分布,尤其是連續型隨機變數的概率密度函數和分布函數
條件概率與貝葉斯公式
常用的概率分布,包括正態分布,伯努利二項分布,均勻分布
隨機變數的均值與方差,協方差
隨機變數的獨立性
最大似然估計
這些知識不超出普通理工科概率論教材的範圍。
參考書目:
概率論國內理工科專業使用最多的是浙大版的教材:
《概率論與數理統計》
最優化方法
最後要說的是最優化,因為幾乎所有機器學習演算法歸根到底都是在求解最優化問題。求解最優化問題的指導思想是在極值點出函數的導數/梯度必須為0。因此你必須理解梯度下降法,牛頓法這兩種常用的演算法,它們的迭代公式都可以從泰勒展開公式中得到。如果能知道坐標下降法、擬牛頓法就更好了。
凸優化是機器學習中經常會提及的一個概念,這是一類特殊的優化問題,它的優化變數的可行域是凸集,目標函數是凸函數。凸優化最好的性質是它的所有局部最優解就是全局最優解,因此求解時不會陷入局部最優解。如果一個問題被證明為是凸優化問題,基本上已經宣告此問題得到了解決。在機器學習中,線性回歸、嶺回歸、支持向量機、logistic回歸等很多演算法求解的都是凸優化問題。
拉格朗日對偶為帶等式和不等式約束條件的優化問題構造拉格朗日函數,將其變為原問題,這兩個問題是等價的。通過這一步變換,將帶約束條件的問題轉換成不帶約束條件的問題。通過變換原始優化變數和拉格朗日乘子的優化次序,進一步將原問題轉換為對偶問題,如果滿足某種條件,原問題和對偶問題是等價的。這種方法的意義在於可以將一個不易於求解的問題轉換成更容易求解的問題。在支持向量機中有拉格朗日對偶的應用。
KKT條件是拉格朗日乘數法對帶不等式約束問題的推廣,它給出了帶等式和不等式約束的優化問題在極值點處所必須滿足的條件。在支持向量機中也有它的應用。
如果你沒有學過最優化方法這門課也不用擔心,這些方法根據微積分和線性代數的基礎知識可以很容易推導出來。如果需要系統的學習這方面的知識,可以閱讀《凸優化》,《非線性規劃》兩本經典教材。
參考書目:
最優化方法可以參考下面兩本經典教材:
Stephen Boyd《凸優化》
Dimitri Bertsekas
《非線性規劃》
各種演算法和理論用到的數學知識
下面我們來看典型演算法和理論結論所用到的數學知識:
除流形學習需要簡單的微分幾何概念之外,深層次的數學知識如實變函數,泛函分析等主要用在一些基礎理論結果的證明上,即使不能看懂證明過程,也不影響我們使用具體的機器學習演算法。概率圖模型、流形學習中基於圖的模型會用到圖論的一些基本知識,如果學習過離散數學或者數據結構,這些概念很容易理解。
看完這些,你心裡的底氣應該更足,如果你大學數學知識還沒有還給老師,為什麼還擔心因為數學而學不好機器學習呢?
更正聲明
[1] 圖文《機器學習-波瀾壯闊40年 》中,時間和名字存在錯誤:
原文:
「2010 Leslie Valiant(概率圖模型
2010 Leslie Valiant(PAC理論)」
現做如下更正:
「2011 Judea Pearl(概率圖模型)
2010 Leslie Valiant(PAC理論)」
[2] 圖文《機器學習-波瀾壯闊40年 》的編排中將Judea Pearl 和Leslie Valiant的頭像放置存在錯誤。正確位置如下:
Judea Pearl
概率知識表達與因果推理
Leslie Valiant
計算學習理論
再次感謝各位同行的指正與關注!
SIGAI
2018.04.17
※AI 和機器學習中暗含的演算法偏見
※Wikibon:2018大數據和機器學習的預測
TAG:機器學習 |