1. 程式人生 > >學好機器學習需要哪些數學知識?

學好機器學習需要哪些數學知識?

很多同學談數學色變,但數學是機器學習繞不開的基礎知識。今天我們來談談這個話題:學好機器學習究竟需要哪些數學知識?

先看知乎上的回答:


大部分讀者看到這樣的答案之後內心是淒涼的。實變函式,拓撲學,泛函分析,除了數學系之外,很少有其他專業會學這些課程。


真的需要學習這些令人不寒而慄的課程嗎?事實上,要理解和掌握絕大部分機器學習演算法和理論,尤其是對做工程應用的人而

言,所需要的數學知識大學數學老師已經給你了:

微積分
線性代數
概率論
最優化方法

關鍵知識點

微積分

先說微積分/高等數學。在機器學習中,微積分主要用到了微分部分,作用是求函式的極值,就是很多機器學習庫中的求解器(solver)所實現的功能。在機器學習裡會用到微積分中的以下知識點:

  • 導數和偏導數的定義與計算方法
  • 梯度向量的定義
  • 極值定理,可導函式在極值點處導數或梯度必須為0
  • 雅克比矩陣,這是向量到向量對映函式的偏導數構成的矩陣,在求導推導中會用到
  • Hessian矩陣,這是2階導數對多元函式的推廣,與函式的極值有密切的聯絡
  • 凸函式的定義與判斷方法
  • 泰勒展開公式
  • 拉格朗日乘數法,用於求解帶等式約束的極值問題

其中最核心的是記住多元函式的泰勒展開公式,根據它我們可以推匯出機器學習中常用的梯度下降法,牛頓法,擬牛頓法等一系列最優化方法:


線性代數

相比之下,線性代數用的更多。在機器學習的幾乎所有地方都有使用,具體用到的知識點有:

  • 向量和它的各種運算,包括加法,減法,數乘,轉置,內積
  • 向量和矩陣的範數,L1範數和L2範數
  • 矩陣和它的各種運算,包括加法,減法,乘法,數乘
  • 逆矩陣的定義與性質
  • 行列式的定義與計算方法
  • 二次型的定義
  • 矩陣的正定性
  • 矩陣的特徵值與特徵向量
  • 矩陣的奇異值分解
  • 線性方程組的數值解法,尤其是共軛梯度法

機器學習演算法處理的資料一般都是向量、矩陣或者張量。經典的機器學習演算法輸入的資料都是特徵向量,深度學習演算法在處理影象時輸入的2維的矩陣或者3維的張量。掌握這些知識會使你遊刃有餘。


概率論

如果把機器學習所處理的樣本資料看作隨機變數/向量,我們就可以用概率論的觀點對問題進行建模,這代表了機器學習中很大一類方法。在機器學習裡用到的概率論知識點有:

  • 隨機事件的概念,概率的定義與計算方法
  • 隨機變數與概率分佈,尤其是連續型隨機變數的概率密度函式和分佈函式
  • 條件概率與貝葉斯公式
  • 常用的概率分佈,包括正態分佈,伯努利二項分佈,均勻分佈
  • 隨機變數的均值與方差,協方差
  • 隨機變數的獨立性
  • 最大似然估計

這些知識不超出普通理工科概率論教材的範圍。


最優化方法

最後要說的是最優化,因為幾乎所有機器學習演算法歸根到底都是在求解最優化問題。求解最優化問題的指導思想是在極值點出函式的導數/梯度必須為0。因此你必須理解梯度下降法,牛頓法這兩種常用的演算法,它們的迭代公式都可以從泰勒展開公式中得到。如果能知道座標下降法、擬牛頓法就更好了。

凸優化是機器學習中經常會提及的一個概念,這是一類特殊的優化問題,它的優化變數的可行域是凸集,目標函式是凸函式。凸優化最好的性質是它的所有區域性最優解就是全域性最優解,因此求解時不會陷入區域性最優解。如果一個問題被證明為是凸優化問題,基本上已經宣告此問題得到了解決。在機器學習中,線性迴歸、嶺迴歸、支援向量機、logistic迴歸等很多演算法求解的都是凸優化問題。

拉格朗日對偶為帶等式和不等式約束條件的優化問題構造拉格朗日函式,將其變為原問題,這兩個問題是等價的。通過這一步變換,將帶約束條件的問題轉換成不帶約束條件的問題。通過變換原始優化變數和拉格朗日乘子的優化次序,進一步將原問題轉換為對偶問題,如果滿足某種條件,原問題和對偶問題是等價的。這種方法的意義在於可以將一個不易於求解的問題轉換成更容易求解的問題。在支援向量機中有拉格朗日對偶的應用。

KKT條件是拉格朗日乘數法對帶不等式約束問題的推廣,它給出了帶等式和不等式約束的優化問題在極值點處所必須滿足的條件。在支援向量機中也有它的應用。

如果你沒有學過最優化方法這門課也不用擔心,這些方法根據微積分和線性代數的基礎知識可以很容易推匯出來。如果需要系統的學習這方面的知識,可以閱讀《凸優化》,《非線性規劃》兩本經典教材。


各種演算法和理論用到的數學知識

下面我們來看典型演算法和理論結論所用到的數學知識:


除流形學習需要簡單的微分幾何概念之外,深層次的數學知識如實變函式,泛函分析等主要用在一些基礎理論結果的證明上,即使不能看懂證明過程,也不影響我們使用具體的機器學習演算法。概率圖模型、流形學習中基於圖的模型會用到圖論的一些基本知識,如果學習過離散數學或者資料結構,這些概念很容易理解。

看完這些,你心裡的底氣應該更足,如果你大學數學知識還沒有還給老師,為什麼還擔心因為數學而學不好機器學習呢?



推薦文章