如今機器學習行業持續加溫,應屆畢業生年薪持續走高,2019年畢業生算法崗年薪40萬起,上不封頂,吸引着愈來愈多的人想往機器學習方向轉。可是剛接觸到算法時,看到那些數學公式都望而生畏,特別是公式的推導。今天本文就介紹機器學習會用到哪些數學知識,讓那些想往機器學習方向轉的同窗內心有底,知道學習的方向。算法
數學是機器學習的內功。做爲機器學習的基石,數學知識不管如何是繞不開的,機器學習中大量的問題最終均可以歸結爲求解最優化問題,微積分、線性代數是最優化方法和理論的基礎,不少機器學習算法的建模涉及到機率論,因而可知學好數學知識多麼必要。很多準備或剛剛邁入機器學習的同窗,在面臨數學基礎的學習時,會遇到兩個問題:數據結構
對此,Summer哥在本文中專門爲你們解決這兩個問題。機器學習
不少人對於機器學習中的數學知識,談之色變,一想到實變函數、隨機過程、泛函分析等等就毛骨悚然。事實上,要理解和掌握絕大部分機器學習算法和理論,尤爲是對作工程應用的人而言,真正所須要的數學知識不過爾爾,主要包括了:<font color="red">微積分、線性代數、機率論、最優化方法</font>
下面咱們來一一介紹一下:函數
<font color="blue">微積分</font>
先說微積分/高等數學。在機器學習中,微積分主要用到了微分部分,做用是求函數的極值,就是不少機器學習庫中的求解器(solver)所實現的功能。在機器學習裏會用到微積分中的如下知識點:學習
相比之下,積分、無窮級數、常微分方程、偏微分方程等在機器學習和深度學習中使用的相對較少。優化
<font color='blue'>線性代數</font>
相比之下,線性代數用的更多。在機器學習的幾乎全部地方都有使用,具體用到的知識點有:spa
機器學習算法處理的數據通常都是向量、矩陣或者張量。經典的機器學習算法輸入的數據都是樣本的特徵向量,深度學習算法在處理圖像時輸入的2維的矩陣或者3維的張量。掌握這些知識會使你遊刃有餘。3d
<font color="blue">機率論</font>
若是把機器學習所處理的樣本數據看做隨機變量/向量,咱們就能夠用機率論的觀點對問題進行建模,這表明了機器學習中很大一類方法。在機器學習裏用到的機率論知識點有:blog
<font color="blue">最優化方法</font>
最後要說的是最優化,由於幾乎全部機器學習算法歸根到底都是在求解最優化問題。求解最優化問題的指導思想是在極值點出函數的導數/梯度必須爲0。所以你必須理解梯度降低法,牛頓法這兩種經常使用的算法,它們的迭代公式均可以從泰勒展開公式中獲得。若是能知道座標降低法、擬牛頓法就更好了。事件
拉格朗日乘數法在機器學習中用的很是多,用於求解代等式約束的最優化問題,所以熟練的使用它是很是有必要的。
凸優化是機器學習中常常會說起的一個概念,這是一類特殊的優化問題,它的優化變量的可行域是凸集,目標函數是凸函數。凸優化最好的性質是它的全部局部最優解就是全局最優解,所以求解時不會陷入局部最優解。若是一個問題被證實爲是凸優化問題,基本上已經宣告此問題獲得瞭解決。在機器學習中,線性迴歸、嶺迴歸、支持向量機、logistic迴歸等不少算法求解的都是凸優化問題。
拉格朗日對偶爲帶等式和不等式約束條件的優化問題構造拉格朗日函數,將其變爲原問題,這兩個問題是等價的。經過這一步變換,將帶約束條件的問題轉換成不帶約束條件的問題。經過變換原始優化變量和拉格朗日乘子的優化次序,進一步將原問題轉換爲對偶問題,若是知足某種條件,原問題和對偶問題是等價的。這種方法的意義在於能夠將一個不易於求解的問題轉換成更容易求解的問題。在支持向量機中有拉格朗日對偶的應用。
KKT條件是拉格朗日乘數法對帶不等式約束問題的推廣,它給出了帶等式和不等式約束的優化問題在極值點處所必須知足的條件。在支持向量機中也有它的應用。
看完這些,很多同窗會安心很多,原來機器學習的數學基礎知識大多已經學習過。除流形學習須要簡單的微分幾何概念以外,深層次的數學知識如實變函數,泛函分析等主要用在一些基礎理論結果的證實上,即便不能看懂證實過程,也不影響咱們使用具體的機器學習算法。機率圖模型、流形學習中基於圖的模型會用到圖論的一些基本知識,若是學習過離散數學或者數據結構,這些概念很容易理解。
很多同窗對數學知識的掌握比較紮實,可是一轉入機器學習中,就不知道從何下手應用。這就是缺少了從機器學習的角度看待數學知識的素質。如何把數學知識運用到機器學習的算法中去呢?首先就是要熟知機器學習的算法和理論中對應着哪些數學知識?
咱們來看看典型算法和理論結論所用到的數學知識:
只有明白本身所學的數學知識能夠應用到哪一塊機器學習的算法或者理論中,才能更有針對的掌握對應的數學知識。另外不管是哪一門學問,都不是一蹴而就的,反反覆覆地去複習和運用知識,才能牢記掌握,機器學習中的數學知識也不例外。