1. 程式人生 > >入行機器學習,對數學的要求高嗎?

入行機器學習,對數學的要求高嗎?

     在過去的幾個月裡,我一直和一些人交流,他們已經開始切入資料科學領域並積極使用機器學習(ML)技術來探索統計規律、或構建完善的資料驅動產品。然而,我發現很多情況下統計分析結果不盡人意的原因是是缺乏必要的數學直覺和知識框架。這就是我決定寫這篇部落格的主要原因。

        最近興起了許多易於使用的機器學習和深度學習的安裝包,如scikit-learn,weka,tensorflow,r-caret等。機器學習理論是橫跨統計、概率、電腦科學和演算法等相關領域,可以用來構建智慧應用程式。雖然機器和深度學習有著無限前景,但就這些技術而言,透徹的數學理解對掌握內部運算和獲得較好的效果是非常有必要的。

為什麼要強調數學?

毫無疑問機器學習中數學是重要的,例如你需要:

    1. 選擇合適的演算法,包括考慮精度、訓練時間、模型的複雜性、引數和數量特徵;

    2.選擇引數設定和驗證策略;

    3.通過了解偏差方差權衡來識別擬合不足與過度擬合;

    4.估計正確的置信區間和不確定性。

        需要具備數學基礎:

        到底需要具備多少數學知識才能理解機器學習這個交叉領域的技術呢?這個問題沒有統一的答案,通常是因人而異的。機器學習的數學公式和理論研究正在進行中,研究人員也正在研發更多的先進技術,所以回答這個問題是不太容易的。下面我將從以下方面闡述我認為成為機器學習科學家/工程師所需的最低數學水平以及每個數學概念的重要性。

        1. 線性代數:在ML中,線性代數到處都是。主成分分析(PCA)、奇異值分解(SVD)、矩陣的特徵分解、LU分解、QR分解/因式分解、對稱矩陣,正交化和正交化、矩陣運算、投影、特徵值和特徵向量、向量空間和規範這些都是理解機器學習及其優化方法所必需的。線性代數令人驚奇的是,有很多線上資源。 我一直說傳統的課堂正在死亡,因為網際網路上有大量的資源。我最喜歡的線性代數課程是MIT(Gilbert Strang教授)課程。

        2. 概率理論與統計學:機器學習與統計學領域是有很多相似的地方。實際上,有人最近將機器學習定義為“在Mac上統計資料”。 機器學習需要基本統計和概率理論的綜合知識,如概率規則和公理、貝葉斯定理、隨機變數、方差和期望、條件和聯合分佈、標準分佈(伯努利,二項式,多項式,均勻和高斯)、矩生成函式、最大似然估計(MLE)、先驗和後驗、最大後驗估計(MAP)和抽樣方法。

        3. 多元微積分:主要領域包括微積分、偏導數、向量值函式、梯度方向、Hessian矩陣、雅可比矩陣、拉普拉斯和拉格朗日分佈。

        4. 演算法和複雜度優化: 這些在評估計算的效率和可擴充套件性,或利用稀疏矩陣時,顯得非常重要。 需要知識包括資料結構(二叉樹,雜湊,堆,堆疊等)、動態規劃、隨機和線性演算法、圖形、梯度/隨機下降和原對偶方法。

        5. 其他:包括上述四個主要領域未涵蓋的其他數學主題。它們包括實分析和複分析(集合和序列、拓撲、度量空間、單值和連續函式、限制、柯西核心、傅立葉變換),資訊理論(熵,資訊增益),函式空間和Manifolds流形。

    一些機器學習愛好者是數學新手, 對於初學者,你不需要掌握很多數學知識才能開始機器學習。 

     機器學習的重要好比人的學習一樣,人的學習促進科技的進步,機器學習帶動人工智慧的快速發展,人工智慧、大資料和雲端計算,需要科譜的同學,別忘了多智時代喲!