本文最初發表在 Medium 博客,經原作者 Ritwik Ghosh 授權,InfoQ 中文站翻譯並分享。

導讀:機器學習集合了統計學、概率論、計算機科學、數學算法等多方面交叉研究,即便你對機器學習的應用爐火純青,但對這些技術若沒有全面的數學理解的話,極有可能會出現應用失誤。數學在機器學習中非常重要,不論是在算法上理解模型代碼,還是在工程上構建系統,數學都必不可少。可以說,數學決定了開發人員的上限。本文作者爲我們闡述了數學在機器學習中的角色,以饗有志於機器學習的開發人員。

Josh Wills 曾說過:“數據科學家是這樣的人:比任何軟件工程師更擅長統計學,比任何統計學家更擅長軟件工程。”

在當今世界,只要你隨便向一個技術人員打聽,他們都會告訴你,這個行業最熱門的工作都與數據和機器學習有關。也難怪,這難免引起了很多開發人員和同屬該行業的公司的興趣。在機器學習和數據科學方面,已經有了大量的資源和支持,統計學工具如 R 等編程語言和各種編程語言的庫也在這些努力中誕生了。

現在,有志於機器學習的人不計其數。然而,市場上對機器學習工程師的需求仍然很大,因爲最終謀求這一職位的人並不多。很多人放棄的部分原因是機器學習工程師職位背後的數學知識令人望而生畏。

儘管機器學習的普及已經促使 Python 和 R 產生了許多易於使用並得到廣泛支持的庫,如 Scikit-learn、TensorFlow 和 OpenCV 這樣的庫,這些庫確實讓每個人的工作變得更容易,因爲它們提供了某種機器學習的捷徑,似乎繞過了這類操作所需算法背後的數學。然而,機器學習背後的數學原理仍然基本不變。

讓我們來討論機器學習中使用的數學主要部分

機器學習的概念主要得益於這四個數學分支: 線性代數微積分統計學概率論 。在本文中,我們將大致瞭解這些數學分支在機器學習模型的生命週期中應用的原因和時機。

線性代數

機器學習主要依賴於線性代數,線性代數用於求解線性方程組。它是利用矩陣和矩陣運算來完成的。任何機器學習模型的數據通常以向量和矩陣的形式存儲,其中的值被認爲是線性方程組的係數。

線性代數

矩陣運算是首選方法,因爲機器學習一般會處理大量數據,因此,通過各種矩陣運算來進行標量運算,如標量乘法和除法,以及向量之間的運算,都比較容易應用,而且速度快,方便快捷。

線性代數的知識對於決定數據應如何存儲在矩陣中是很重要的。例如,一張圖片可以存儲在三個矩陣中,每個元素分別包含了矩陣中每個像素的紅、綠、藍三色值的強度。現在,由於使用了矩陣來應用線性代數,對這些像素進行操作變得非常容易。

微積分

微積分用來幫助機器學習算法提高預測的準確性。這是通過算法的優化過程來實現的。這是在微分的幫助下完成的。利用微分,我們可以通過考慮函數的梯度來求函數的極值。當一個函數有多個參數決定機器學習模型的預測結果時,就會用到多元微積分。它也有助於神經網絡模型,在神經網絡模型中,微分用來計算反向傳播誤差。

梯度下降法

此外,在深度學習模型中,積分可以用來計算損失函數,還可以在連續值的概率分佈中得出特定變量的期望值。

例如,經典的梯度下降法問題就是優化並找出球在碗中滾動的最低位置。這個問題可以通過簡單的微分來解決。

概率論

當一個算法沒有結論性的結果而只有一個概率分佈時,我們就用概率來進行決策。算法可以輸出值的範圍以及這些值應爲預期值或爲真值的概率。這就是概率論的作用,決策是基於對變量的期望值的概率做出的。任何算法都不可能給出一個完全盲目且可靠的輸出。因此,概率是用來決定灰色區域的結果。

例如,如果我們在一個樣本上找出受帕金森氏病影響的人數和年齡,我們就會得到帕金森氏病患者年齡分佈概率。現在,如果要求我們選擇受影響最大的年齡,我們可以取一個年齡區間,在這個年齡區間中,受疾病影響的可能性最大。這種連續分佈的決策過程就需要概率論。

統計學

統計學是用來從數據中得出結論的。各種統計學方法可以應用到一個數據上,得出不同的結論,從而更好地理解數據。這種理解可以是爲了找出數據的均值、極值、範圍,也可以是比較複雜的結論,如數據中的離羣值作弊,數據給出的函數的階數(degree),數據的各種參數之間的相關係數,某個參數與算法的預期輸出的相關性等等。還有一些假設檢驗,如卡方檢驗(Chi-squared test)、z 檢驗、p 檢驗、方差分析等,這些檢驗是爲了檢驗我們可能假設的有效性,並對給定的數據進行檢驗。

現在讓我們考慮一個簡單易懂的例子,它大致包括了所有這些數學分支,這樣,我們就能夠對它們的實現有一個大致的瞭解。

一個典型的例子是依賴於機器學習的人臉識別算法。

  • 示例數據集中的圖像像素以向量的形式存儲在矩陣中。這利用到了 線性代數 。如果拍攝彩色圖像的話,那麼根據使用的顏色方案使用若干個矩陣,並將每個像素的強度存儲在這些向量中。這使得處理數據變得容易,並且便於對它們進行向量操作,這裏的向量操作是將現有的人臉與給定圖片中的人臉進行比較。
  • 這裏要用到 微積分 來解決當前誤差的梯度。繪製出人臉的定義(存儲爲向量)與給定圖片之間的誤差梯度。如果梯度超過容許限度,則通過更新其存儲的向量的悉數來更新人臉的定義。
  • 概率論 是通過計算給定圖片中存在人臉的概率判定給定圖片是否存在人臉。任何算法都不能給出絕對正確、百分之百可靠的輸出。因此,應使用概率來決定結果。概率將輸入與算法的容限因子進行比較。
  • 統計學貫穿於算法所經歷的各個過程,如計算圖像的各種參數與期望的結果之間的相關性。統計學也被用來檢驗假設,該假設是給定圖像存在人臉,並且檢驗結果顯示虛假設(null hypotheses)或備擇假設(alternative hypotheses)是否被接受。

因此,我們可以看到,機器學習的每一點都嚴重依賴於數學。這就是爲什麼機器學習工程師需要對上問提到的數學部分有很強的掌握。

作者介紹:

Ritwik Ghosh,博客寫手,專注科技行業最熱門話題。

原文鏈接:

https://medium.com/analytics-vidhya/role-of-mathematics-in-machine-learning-f070e7cf6128

相關文章