機器學習需要哪些數學基礎?

wo人生如戲


好多粉絲私信我說想要入門機器學習、人工智能,今天我來給大家說下大致需要的知識。


1、概率與數理統計

機器學習是一門建立在統計基礎上的學科,你需要的知識有最大似然估計方法、貝葉斯統計、均方差、直方圖、各類分佈如高斯分佈、正態分佈等等。

2、線性代數

線性代數在機器學習中起到一個計算工具的作用,大量矩陣算法被用來訓練神經網絡和各種機器學習算法模型。線性代數需要掌握矩陣、特徵向量和特徵值、歸一化和正交化,矩陣乘法等等。

3、微積分

在學習機器學習的過程中難免會需要推導各類公式,那麼微積分是不可避免的,例如在線性迴歸算法中需要推導梯度下降算法,這就需要用到導數的知識。


我的人工智能之路


過去的幾個月中,有幾人聯繫我,訴說他們對嘗試進入數據科學的世界,以及用機器學習的技術去探索統計規律並構建無可挑剔的數據驅動型產品的熱忱。然而,我發現一些人實際上缺乏必要的數學直覺和知識框架去得到有用的結果。這便是我決定寫這篇博文的主要原因。最近湧現出了很多易於使用的機器學習和深度學習的軟件包,例如 scikit-learn, Weka, Tensorflow 等等。機器學習理論是統計學、概率學、計算機科學以及算法的交叉領域,是通過從數據中的迭代學習去發現能夠被用來構建智能應用的隱藏知識。儘管機器學習和深度學習有著無限可能,然而為了更好地掌握算法的內部工作機理和得到較好的結果,對大多數這些技術有一個透徹的數學理解是必要的。


邏輯迴歸和神經網絡的代價函數的計算方法


為什麼要重視數學?


機器學習中的數學是重要的,有很多原因,下面我將強調其中的一些:

1. 選擇正確的算法,包括考慮到精度、訓練時間、模型複雜度、參數的數量和特徵數量。

2. 選擇參數的設置和驗證策略。

3. 通過理解偏差和方差之間的 tradeoff 來識別欠擬合與過擬合。

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


你需要什麼水平的數學?


當你嘗試著去理解一個像機器學習(ML)一樣的交叉學科的時候,主要問題是理解這些技術所需要的數學知識的量以及必要的水平。這個問題的答案是多維的,也會因個人的水平和興趣而不同。關於機器學習的數學公式和理論進步正在研究之中,而且一些研究者正在研究更加先進的技術。下面我會說明我所認為的要成為一個機器學習科學家/工程師所需要的最低的數學水平以及每個數學概念的重要性。

1. 線性代數:我的一個同事 Skyler Speakman 最近說過,「線性代數是 21 世紀的數學」,我完全贊同他的說法。在機器學習領域,線性代數無處不在。主成分分析(PCA)、奇異值分解(SVD)、矩陣的特徵分解、LU 分解、QR 分解、對稱矩陣、正交化和正交歸一化、矩陣運算、投影、特徵值和特徵向量、向量空間和範數(Norms),這些都是理解機器學習中所使用的優化方法所需要的。令人驚奇的是現在有很多關於線性代數的在線資源。我一直說,由於大量的資源在互聯網是可以獲取的,因而傳統的教室正在消失。我最喜歡的線性代數課程是由 MIT Courseware 提供的(Gilbert Strang 教授的講授的課程):http://ocw.mit.edu/courses/mathematics/18-06-linear-algebra-spring-2010/

2. 概率論和統計學:機器學習和統計學並不是迥然不同的領域。事實上,最近就有人將機器學習定義為「在機器上做統計」。機器學習需要的一些概率和統計理論分別是:組合、概率規則和公理、貝葉斯定理、隨機變量、方差和期望、條件和聯合分佈、標準分佈(伯努利、二項式、多項式、均勻和高斯)、時刻生成函數(Moment Generating Functions)、最大似然估計(MLE)、先驗和後驗、最大後驗估計(MAP)和抽樣方法。

3. 多元微積分:一些必要的主題包括微分和積分、偏微分、向量值函數、方向梯度、海森、雅可比、拉普拉斯、拉格朗日分佈。

4. 算法和複雜優化:這對理解我們的機器學習算法的計算效率和可擴展性以及利用我們的數據集中稀疏性很重要。需要的知識有數據結構(二叉樹、散列、堆、棧等)、動態規劃、隨機和子線性算法、圖論、梯度/隨機下降和原始對偶方法。

5. 其他:這包括以上四個主要領域沒有涵蓋的數學主題。它們是實數和複數分析(集合和序列、拓撲學、度量空間、單值連續函數、極限)、信息論(熵和信息增益)、函數空間和流形學習。


一些用於學習機器學習所需的數學主題的 MOOC 和材料(鏈接經過壓縮)


可汗學院的線性代數(http://suo.im/fgMNX)、概率與統計(http://suo.im/CqwY9)、多元微積分(http://suo.im/xh6Zn)和優化(http://suo.im/1o2Axs)

布朗大學 Philip Klein 的「編程矩陣:計算機科學應用中的線性代數(Coding the Matrix: Linear Algebra through Computer Science Applications)」:http://codingthematrix.com

得克薩斯大學的 Robert van de Geijn 在 edX 上的 Linear Algebra – Foundations to Frontiers:http://suo.im/hKRnW

戴維森學院 Tim Chartier 的新課程 Applications of Linear Algebra;第一部分:http://suo.im/48Vary,第二部分:http://suo.im/3Xm3Lh

Joseph Blitzstein 的 Harvard Stat 110 lectures:http://suo.im/2vhVmb

Larry Wasserman 的書《All of statistics: A Concise Course in Statistical Inference》,下載:http://suo.im/v9u7k

斯坦福大學的 Boyd 和 Vandenberghe 的關於凸優化的課程:http://suo.im/2wdQnf

Udacity 的 Introduction to Statistics 課程:http://suo.im/1enl1c

吳恩達授課的 Coursera/斯坦福大學的機器學習課程:http://suo.im/1eCvp9

這篇博文的主要目的是給出一些善意的關於數學在機器學中的重要性的建議,一些一些必需的數學主題以及掌握這些主題的一些有用的資源。然而,一些機器學習的痴迷者是數學新手,可能會發現這篇博客令人傷心(認真地說,我不是故意的)。對於初學者而言,你並不需要很多的數學知識就能夠開始機器學習的研究。基本的吸納覺條件是這篇博文所描述的數據分析,你可以在掌握更多的技術和算法的過程中學習數學。

更多信息請參考:http://www.jiqizhixin.com/article/2354


機器之心


數學作為機器學習的理論基礎。如果不懂數學可能導致機器學習流於表面,不能深入理解其本質,因此學好數學是很必要的。但並不是所有的數學都需要學習,如果作為初學者,我建議可以從以下幾方面出發,能夠快速的入門機器學習。

1)概率論

包括概率密度,聯合概率,條件概率,和各種概率分佈等概念,該數學知識點可應用於貝葉斯模型,決策樹,最大期望等算法模型中;

2)線性代數

包括特徵值,特徵向量,矩陣運算等相關數學知識點,因為機器學習基本都是按照矩陣進行運算。該知識點主要應用於主成分分析,奇異值分解,因子分解,邏輯迴歸,線性迴歸等算法中。

3)微積分

包括導數、梯度、偏導數,泰勒公式,凸函數等數學知識點,其實求解模型需要運用到該知識,如梯度下降法等。


極數蝸牛


機器學習

屬於人工智能研究與應用的一個分支領域。機器學習的研究更加偏向理論性,其目的更偏向於是研究一種為了讓計算機不斷從數據中學習知識,而使機器學習得到的結果不斷接近目標函數的理論。

機器學習涉及許多數學學科,最主要的就是概率統計理論,矩陣理論,以及運籌學等。

概率統計理論——機器學習的一個主要方向

作者曾經寫過系列《想要學人工智能,你必須得先懂點統計學》,共14篇文章,詳細內容可以到作者主頁查看,主要向大家介紹了在學習人工智能和機器學習之前有必要掌握的一些基礎統計理論,這些統計理論將有助於後續理解相關的機器學習算法和對數據挖掘結果的解釋。

第一篇:介紹了統計學的概念,描述統計方法和推斷統計方法,統計工作的過程,統計數據的類型,常用的統計調查方式和數據收集方法。

第二篇:介紹了數據描述的圖形方法、表格方法以及數值方法,分佈形狀與眾數、中位數和均值的關係,離散係數或者變異係數。

第三篇:介紹了條件概率、全概率公式以及貝葉斯公式,常見的離散型概率分佈和連續型隨機變量的概率分佈。

第四篇:介紹了方差分析的基本概念,方差分析的基本思想和原理。

第五篇:介紹了方差分析中的基本假定,單因素方差分析的數據結構,總變差(離差平方和)的分解,組間方差和組內方差,檢驗的統計量 F 計算。

第六篇:介紹了顯著性水平,統計量大小以及P值大小這三者之間的關係,如何根據P值怎麼判斷顯著性,查表又怎麼判斷顯著性。

第七篇:介紹了雙因素方差分析的數據結構,無交互作用的雙因素方差分析模型和有交互作用的雙因素方差分析模型。

第八篇:介紹了變量間的函數和相關關係,相關關係的類型和相關關係的描述。

第九篇:介紹了相關分析要解決的問題,總體相關係數以及樣本相關係數,相關係數的取值及意義和相關係數的顯著性檢驗。

第十篇:介紹了迴歸分析的內容,迴歸分析與相關分析的區別和聯繫,迴歸模型的類型。

第十一篇:介紹了一元線性迴歸的概念,一元線性迴歸模型的表示,一元線性迴歸模型的基本假設以及迴歸方程的估計。

第十二篇:介紹了離差平方和的分解,三個平方和的關係和意義,樣本決定係數(判定係數 r2),迴歸方程的顯著性檢驗(線性關係的檢驗)。

第十三篇:介紹了迴歸係數b1的顯著性檢驗,迴歸係數顯著性檢驗的步驟—t檢驗。

第十四篇:介紹了利用迴歸方程進行估計和預測,包括點估計和區間估計,影響區間寬度的因素,置信區間、預測區間和迴歸方程之間的關係。

矩陣理論——機器學習模型的中間運算

主要是機器學習過程的運算都是以矩陣的形式進行,因此需要掌握的矩陣理論的主要知識有, 矩陣的基本運算,矩陣變換和線性空間以及矩陣求導等。

運籌學理論——機器學習模型的優化求解

因為機器學習中的很多問題都是凸優化問題,比如支持向量機SVM,因此,需要學習一些運籌學當中優化問題求解的算法,瞭解機器學習中的優化問題,求解凸優化問題的算法以及更有深度當然就是非凸優化問題。


小AI諮詢


高等數學:

高等數學是比初等數學更高深的數學。有將中學裡較深入的代數、幾何以及集合論
初步、邏輯初步統稱為中等數學的,將其作為小學、初中的初等數學與本科階段的
高等數學之間的過渡。通常認為,高等數學的主要內容包括:極限理論、一元微積
分學、多元微積分學、空間解析幾何與向量代數、級數理論、常微分方程初步。在
高等數學的教材中,以微積分學和級數理論為主體,其他方面的內容為輔,各類課

本略有差異。

理工科各類專業的學生(數學專業除外,數學專業學數學分析),學的深一些,課本常稱“高等數學”,多數院校使用課本為同濟大學數學系所編的《高等數學》;文史科各類專業的學生,學的淺一些,課本常稱“微積分”。理工科的不同專業,文史科的不同專業,深淺程度又各不相同。研究變量的是高等數學,可高等數學並不只研究變量。至於與“高等數學”相伴的課程通常有:線性代數(數學專業學高等代數),概率論與數理統計(有些數學專業分開學)。高等數學是高等學校理工科本科有關專業學生的一門必修的重要基礎課。通過這門課程的學習,使學生獲得向量代數與空間解析幾何、微積分的基本知識,必要的基礎理論和常用的運算方法,並注意培養學生的運算能力和初步的抽象思維、邏輯推理及空間想象能力,從而使學生獲得解決實際問題能力的初步訓練,為學習後繼課程奠定必要的數學基礎

離散數學

離散數學是數學的幾個分支的總稱,研究基於離散空間而不是連續的數學結構。與連續變化的實數不同,離散數學的研究對象——例如整數、圖和數學邏輯中的命題——不是連續變化的,而是擁有不等、分立的值。因此離散數學不包含微積分和分析等“連續數學”的內容。離散對象經常可以用整數來枚舉。更一般地,離散數學被視為處理可數集合(與整數子集基數相同的集合,包括有理數集但不包括實數集)的數學分支。但是,“離散數學”不存在準確且普遍認可的定義。實際上,離散數學經常被定義為不包含連續變化量及相關概念的數學,甚少被定義為包含什麼內容的數學。離散數學中的對象集合可以是有限或者是無限的。有限數學一詞通常指代離散數學處理有限集合的那些部分,特別是在與商業相關的領域。

隨著計算機科學的飛速發展,離散數學的重要性則日益彰顯。它為許多信息學課程提供了數學基礎,包括數據結構、算法、數據庫理論、形式語言與操作系統等。如果沒有離散數學的相關數學基礎,學生在學習上述課程中,便會遇到較多的困難。此外,離散數學也包含了解決作業研究、化學、工程學、生物學等眾多領域的數學背景。由於運算對象是離散的,所以計算機科學的數學基礎基本上也是離散的。我們可以說計算機科學的數學語言就是離散數學。人們會使用離散數學裡面的槪念和表示方法,來研究和描述計算機科學下所有分支的對象和問題,如電腦運算、編程語言、密碼學、自動定理證明和軟件開發等。相反地,計算機的應用使離散數學的概念得以應用於日常生活當中(如運籌學)。

線性代數

線性代數是關於向量空間和線性映射的一個數學分支。它包括對線、面和子空間的研究,同時也涉及到所有的向量空間的一般性質。

座標滿足線性方程的點集形成n維空間中的一個超平面。n個超平面相交於一點的條件是線性代數研究的一個重要焦點。此項研究源於包含多個未知數的線性方程組。這樣的方程組可以很自然地表示為矩陣和向量的形式。線性代數既是純數學也是應用數學的核心。例如,放寬向量空間的公理就產生抽象代數,也就出現若干推廣。泛函分析研究無窮維情形的向量空間理論。線性代數與微積分結合,使得微分方程線性系統的求解更加便利。線性代數的理論已被泛化為算子理論。線性代數的方法還用在解析幾何、工程、物理、自然科學、計算機科學、計算機動畫和社會科學(尤其是經濟學)中。由於線性代數是一套完善的理論,非線性數學模型通常可以被近似為線性模型。

概率論

概率論是集中研究概率及隨機現象的數學分支,是研究隨機性或不確定性等現象的數學。概率論主要研究對象為隨機事件、隨機變量以及隨機過程。對於隨機事件是不可能準確預測其結果的,然而對於一系列的獨立隨機事件——例如擲骰子、扔硬幣、抽撲克牌以及輪盤等,會呈現出一定的、可以被用於研究及預測的規律,兩個用來描述這些規律的最具代表性的數學結論分別是大數定律和中心極限定理。

作為統計學的數學基礎,概率論對諸多涉及大量數據定量分析的人類活動極為重要,概率論的方法同樣適用於其他方面,例如是對只知道系統部分狀態的複雜系統的描述——統計力學,而二十世紀物理學的重大發現是以量子力學所描述的原子尺度上物理現象的概率本質數學家和精算師認為概率是在0至1閉區間內的數字,指定給一發生與失敗是隨機的“事件”。因為事件在一定程度上是以集合的含義定義的,因此可以把集合計算方法直接應用於事件的計算,也就是說,在計算過程中,可以把事件當作集合來對待。

統計學

統計學是在數據分析的基礎上,研究如何測定、收集、整理、歸納和分析反映數據數據,以便給出正確消息的科學。這一門學科自17世紀中葉產生並逐步發展起來,它廣泛地應用在各門學科,從自然科學、社會科學到人文學科,甚至被用於工商業及政府的情報決策。隨著大數據(Big Data)時代來臨,統計的面貌也逐漸改變,與信息、計算等領域密切結合,是數據科學(Data Science)中的重要主軸之一。

譬如自一組數據中,可以摘要並且描述這份數據的集中和離散情形,這個用法稱作為描述統計學。另外,觀察者以數據的形態,創建出一個用以解釋其隨機性和不確定性的數學模型,以之來推論研究中的步驟及母體,這種用法被稱做推論統計學。這兩種用法都可以被稱作為應用統計學。數理統計學則是討論背後的理論基礎的學科。

很多人認為統計學是一種科學的數學分支,是關於收集、分析、解釋、陳述數據的科學。另一些人認為它是數學的一個分支,因為統計學是關於收集解釋數據的。由於它基於觀測、重視應用,統計學常被看作是一門獨特的數學科學,而不是一個數學分支。很多統計學都不是數學的:如確保所收集來的數據能得出有效的結論;將數據編碼、存檔以使得信息得以保存,可以在國際上進行比對;彙報結果、總結數據,以便統計員可以明白它們的意思;採取必要措施,保護數據來源對象的隱私。

統計學家通過專門的試驗設計和調查樣本來提升數據質量。統計學自身也為數據的概率模型提供了預測工具。統計學在其他學術科目上得到了廣泛的應用,如自然科學、社會科學、政府、商業等。統計顧問可以幫助沒有入戶調查經驗組織與公司進行問卷研究。

總結敘述收集來的數據被稱之為描述統計學。這在進行實驗研究信息交流中十分有用。另外,從數據的分佈上也可以得出觀測上的隨機性和不確定性。

將數據中的數據模型化,計算它的概率並且做出對於母群體的推論被稱之為推論統計學。推論是科學進步的重要因素,因為它可能從隨機變量中得出數據的結論。推論統計學將命題進行更深入的研究,將結果進行檢測。這些都是科學方式的一部分。描述統計學和對新數據的分析更傾向於提供更多的信息,逼近命題所述的真理。

“應用統計學”包括描述統計學和推論統計學中的應用成分。理論統計學則注重統計推論背後的邏輯證明,以及數理統計學。數理統計學不但包括推導估測推論法的概率分佈,還包括了計算統計和試驗設計。

統計學與概率論聯繫緊密,並常以後者為理論基礎。簡單地講,兩者不同點在於概率論從母群體中推導出樣本的概率。統計推論則正好相反——從小的樣本中得出大的母群體的信息

人工智能科學


學好數學是基礎(高等數學、線性代數、概率論與數理統計)

上圖為古埃及測量土地時,應用了三角學技術。這些數學的基礎,是我們以後機器學習的數學模型基礎。(數學來自於人類生產實踐中,數學的基礎是產生物理學、化學、人工智能、大數據等學科抽象的核心基礎),數學是對現實世界的人類抽象認知。

(托勒密宇宙模型)用此數學模型很精確預測年曆、月曆、日曆。

機器學習(Machine Learning)是一種偏於技術的方法。包括三個方面:

一、監督學習(Supervised Learning)

掃描各種算法數據集,並給定正確的答案。使機器得到一個最優模型,再利用這個模型將所有新的數據樣本映射為相應的輸出結果,對輸出結果進行簡單的判斷而實現分類的目的,那麼這個最優模型也就具有了對未知數據進行分類的能力。

二、無監督學習(Unsupervised Learning)

給定的數據樣本,沒有正確答案,需機器找出可能具有的結構,對數據進行建模。

三、強化學習(Reforcement Learning)

延遲滿足,根據結果調整行為。

機器學習算法是個黑盒,可以重用,來解決很多不同的分類問題。

“機器學習”是一個涵蓋性術語,覆蓋了大量類似的泛型算法。


皓天178297455


一、概述

我們知道,機器學習的特點就是:

以計算機為工具和平臺,以數據為研究對象,

以學習方法為中心;是概率論、線性代數、數

值計算、信息論、最優化理論和計算機科學等

多個領域的交叉學科。所以本文就先介紹一下

機器學習涉及到的一些最常用的的數學知識。

二、線性代數

2-1、標量

一個標量就是一個單獨的數,一般用小寫的的

變量名稱表示。

2-2、向量 一個向量就是一列數,這些數是有

序排列的。

用過次序中的索引,我們可以確定每個單獨的

數。通常會賦予向量粗體的小寫名稱。當我們

需要明確表示向量中的元素時,我們會將元素

排 列成一個方括號包圍的縱柱:


我們可以把

向量看作空間中的點,每個元素是不同的座標

軸上的座標。

2-3、矩陣 矩陣是二維數組,其中的每一個元

素被兩個索引而非一個所確定。我們通常會賦

予矩陣粗體的大寫變量名稱,比如A。 如果一

個實數矩陣高度為m,寬度為n,那麼我們說

A\\epsilon R^{m\\times n} 。


矩陣這東西在機器學習中就不要太重要了!實

際上,如果我們現在有N個用戶的數據,每條

數據含有M個特徵,那其實它對應的就是一個

N*M的矩陣呀;再比如,一張圖由16*16的像

素點組成,那這就是一個16*16的矩陣了。現

在才發現,我們大一學的矩陣原理原來這麼的

有用!要是當時老師講課的時候先普及一下,

也不至於很多同學學矩陣的時候覺得莫名其妙

了.

2-4、張量

幾何代數中定義的張量是基於向量和矩陣的推

廣,通俗一點理解的話,我們可以將標量視為

零階張量,矢量視為一階張量,那麼矩陣就是

二階張量。 例如,可以將任意一張彩色圖片表

示成一個三階張量,三個維度分別是圖片的高

度、寬度和色彩數據。將這張圖用張量表示出

來,就是最下方的那張表格:


其中表的橫軸表示圖片的寬度值,這裡只截取0~319;表的縱軸表示圖片的高度值,這裡只截取0~4;表格中每個方格代表一個像素點,比如第一行第一列的表格數據為[1.0,1.0,1.0],代表的就是RGB三原色在圖片的這個位置的取值情況(即R=1.0,G=1.0,B=1.0)。 當然我們還可以將這一定義繼續擴展,即:我們可以用四階張量表示一個包含多張圖片的數據集,這四個維度分別是:圖片在數據集中的編號,圖片高度、寬度,以及色彩數據。 張量在深度學習中是一個很重要的概念,因為它是一個深度學習框架中的一個核心組件,後續的所有運算和優化算法幾乎都是基於張量進行的。

2-5、範數

有時我們需要衡量一個向量的大小。在機器學習中,我們經常使用被稱為範數(norm) 的函數衡量矩陣大小。Lp 範數如下:

所以: L1範數\\left| \\left| x \\right| \\right| :為x向量各個元素絕對值之和; L2範數\\left| \\left| x \\right| \\right| _{2} :為x向量各個元素平方和的開方。 這裡先說明一下,在機器學習中,L1範數和L2範數很常見,主要用在損失函數中起到一個限制模型參數複雜度的作用,至於為什麼要限制模型的複雜度,這又涉及到機器學習中常見的過擬合問題。具體的概念在後續文章中會有詳細的說明和推導,大家先記住:這個東西很重要,實際中經常會涉及到,面試中也常會被問到!!!

2-6、特徵分解 許多數學對象可以通過將它們分解成多個組成部分。特徵分解是使用最廣的矩陣分解之一,即將矩陣分解成一組特徵向量和特徵值。 方陣A的特徵向量是指與A相乘後相當於對該向量進行縮放的非零向量\\nu :

未完待續...


熹昀教育


國內工科生本科前兩年的數學基礎差不多就夠了,機器學習裡面有些數學知識你都會聽過會熟悉點,只是和課本上有點差異看上去怪異。在校生學機器學習,就沒必要去啃專業的高深數學知識,學好本科數學課程就行。線代,概率論在機器學習裡面應用很廣。


MLCV


數學基礎對於機器學習來說只需要一般的概率論加線性代數就可以了,往深挖的話還需要偏微分,複變函數,實變函數等等,不過做機器學習很多時候都是用簡單的算法加選擇合適指標,一個好的idea指標勝過一堆亂七八糟的鬼扯優化算法!


分享到:


相關文章: