數學菜鳥如何學習機器學習
要點
- 機器學習中數學的重要性:良好的數理基礎會讓機器學習事半功倍,算法和模型的選擇和理解都需要一定的數學基礎。
- 機器學習中哪些數學知識是必備的:線性代數、概率論和統計學、多元微積分、算法和優化理論、復變函數和信息論中的相關知識和概念都是必需的。
- 初學者如何進行機器學習:現在一些簡單易用的工具包比如scikit-learn、Tensorflow都可以幫助你搭建自己的模型,只要你具備了一定的數學基礎,那么最好的學習方法就是實踐。
機器學習是一個涉及到統計學、概率論、計算機科學和算法等方面的交叉領域,從數據中反復學習,并找出其中可用于構建智能應用的潛在關系。盡管機器學習和深度學習具有巨大的可能性,但是如果要很好地掌握算法的工作原理并得到好的結果,對這些技術的全面的數學理解還是很必要的。
機器學習中數學的重要性
非死book人工智能實驗室主任Yann LeCun在2014年的一篇 采訪 (中文版詳見InfoQ)中就建議“打算進入這個領域的人本科的時候就應該多學數學、統計學還有物理學”,良好的數理基礎會讓機器學習事半功倍。
物理學博士Wale Akinfaderin在一篇 文章 中總結了機器學習中的數學為什么會那么重要:
- 機器學習需要選擇正確的算法,需要考慮準確度、訓練時間、模型復雜度、模型參數數量和特征數量。
- 機器學習需要選擇參數設置和驗證方法。
- 機器學習需要通過理解偏差-方差來判斷欠擬合和過擬合。
- 機器學習需要估計置信區間和不確定度。
機器學習中哪些數學知識是必備的
那么學習機器學習應該具備哪些數學知識呢?這取決于你的興趣以及你想做什么。Wale為我們整理了一下機器學習科學家/工程師至少應具備的數學知識和概念:
- 線性代數:在機器學習中,線性代數隨處可見。主成分分析(PCA)、奇異值分解(SVD)、矩陣的特征分解、LU分解、QR分解、對稱矩陣、正交化和正交歸一化、矩陣的運算、分解、向量空間和范數等,這些都是理解機器學習中所使用的優化方法所必須的。
- 概率論和統計學:機器學習和統計學并不是很不同的領域。實際上,有人最近將機器學習定義為“在Mac上做統計”。機器學習所需的一些基本統計和概率理論主要有:組合學、概率規則和公理、貝葉斯定理、隨機變量、方差和期望、條件和聯合分布、標準分布(伯努利分布、二項式分布、多項式分布、均勻分布和高斯分布等)、動差生成函數(Moment Generating Functions)、最大似然估計(MLE)、先驗和后驗、最大后驗估計(MAP)和抽樣方法。
- 多元微積分:一些必要的內容包括微積分、偏導數、向量值函數、方向梯度、Hessian、 Jacobian、Laplacian和Lagragian分布。
- 算法和優化理論:這對我們理解機器學習算法的計算效率和可拓展性以及怎么利用數據中的稀疏性很重要。需要的知識主要包括:數據結構(二叉樹、散列、堆、堆棧等)、動態規劃、隨機和次線性算法、圖論、梯度/隨機下降和原始-對偶方法。
- 其他還包括:復變函數(集合和序列、拓撲結構、度量空間、單值和連續函數、極限等)、信息論(熵、信息增益)、函數空間和流形。
初學者如何進行機器學習
當然,以上只是強調了機器學習中數學的重要性以及一些必要的數學內容。作為初學者,你沒有必要等到具有很強的數學功底之后才開始機器學習,現在一些簡單易用的機器學習和深度學習工具包比如 scikit-learn 、 Tensorflow 就可以幫助你搭建自己的模型。
正如Daniel Jeffries在其系列文章《 Learning AI if You Suck at Math 》中所說,數學可以幫你更加清楚的理解機器學習的深層含義,但是只要你具備了一些數學基礎,那么你馬上就可以開始。現在的一些主流的工具包和框架都有比較詳細的安裝和使用教程,他的學習方法就是實踐:
- 選擇一個項目
- 克服自我否定
- 大膽嘗試,不怕失敗
- 不斷練習
當然,文中他還推薦了基本數學與機器學習參考書,比如《Mathematics: A Very Short Introduction》(中文譯本:《牛津通識讀本:數學》)、《Algebra Unplugged》、《Make Your Own Neural Network》以及 Ian Goodfellow 的《Deep Learning》,但是其中大多數都是英文的,如果你想深入學習的話,可以參考github上整理的機器學習 學習路線 。同時,還有一些經典中文教材很值得學習,比如李航老師的《 統計學習方法 》和南京大學周志華老師的《 機器學習 》,里面的一些機器學習算法都有詳細的數學推導和介紹。
來自:http://www.infoq.com/cn/news/2017/03/mathematics-machine-learn