1. 程式人生 > >總結學習機器學習過程中用到的資料學知識

總結學習機器學習過程中用到的資料學知識

現在機器學習行業持續加溫,應屆畢業生年薪持續走高,2019年畢業生演算法崗年薪40萬起,上不封頂,吸引著越來越多的人想往機器學習方向轉。但是剛接觸到演算法時,看到那些數學公式都望而生畏,特別是公式的推導。今天本文就介紹機器學習會用到哪些數學知識,讓那些想往機器學習方向轉的同學心裡有底,知道學習的方向。

數學是機器學習的內功。作為機器學習的基石,數學知識無論如何是繞不開的,機器學習中大量的問題最終都可以歸結為求解最優化問題,微積分、線性代數是最優化方法和理論的基礎,很多機器學習演算法的建模涉及到概率論,由此可見學好數學知識多麼必要。不少準備或剛剛邁入機器學習的同學,在面臨數學基礎的學習時,會遇到兩個問題:

  • 不知道機器學習和深度學習到底要用到哪些數學知識
  • 無法真正理解這些數學知識,並用於機器學習的推導證明

對此,Summer哥在本文中專門為大家解決這兩個問題。

  • 首先,在龐雜的數學系統內,哪些知識是在機器學習中真正有用的,對這些知識掌握到什麼程度就足夠了?
  • 其次,掌握了的數學知識怎麼在機器學習領域內運用,即怎麼從機器學習的角度去理解數學知識?
一、機器學習所需要的數學知識

很多人對於機器學習中的數學知識,談之色變,一想到實變函式、隨機過程、泛函分析等等就不寒而慄。事實上,要理解和掌握絕大部分機器學習演算法和理論,尤其是對做工程應用的人而言,真正所需要的數學知識不過爾爾,主要包括了:微積分、線性代數、概率論、最優化方法

下面我們來一一介紹一下:

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

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

相比之下,積分、無窮級數、常微分方程、偏微分方程等在機器學習和深度學習中使用的相對較少。

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

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

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

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

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

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

拉格朗日乘數法在機器學習中用的非常多,用於求解代等式約束的最優化問題,因此熟練的使用它是非常有必要的。

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

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

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

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

二、從機器學習的角度學習數學知識

不少同學對數學知識的掌握比較紮實,但是一轉入機器學習中,就不知道從何下手應用。這就是缺乏了從機器學習的角度看待數學知識的素質。如何把數學知識運用到機器學習的演算法中去呢?首先就是要熟知機器學習的演算法和理論中對應著哪些數學知識?

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

只有明白自己所學的數學知識可以應用到哪一塊機器學習的演算法或者理論中,才能更有針對的掌握對應的數學知識。另外無論是哪一門學問,都不是一蹴而就的,反反覆覆地去複習和運用知識,才能牢記掌握,機器學習中的數學知識也不例外。