Mathematics behind Machine Learning - The Core Concepts you Need to Know
“學習機器學習算法背后的數(shù)學有什么用?我們可以輕松地使用Python和R中廣泛可用的庫來構建模型!”
我已經記不清從數(shù)據(jù)科學愛好者那里聽到這種消息的次數(shù)了。這種謬論太普遍了,在有抱負的數(shù)據(jù)科學專業(yè)人員中產生了一種錯誤的期望。
根據(jù)我的經驗,主要是有以下兩個原因:
現(xiàn)在讓我們把這個問題解決掉——你需要理解機器學習算法背后的數(shù)學原理,才能成為一名數(shù)據(jù)科學家。沒有別的辦法。這是數(shù)據(jù)科學家角色的一個固有部分,每一位招聘人員和有經驗的機器學習專業(yè)人士都將證明這一點。
因此,這就引出了一個問題,我們該如何著手學習呢?這就是我們將在本文中學習的內容。我們將討論成為機器學習大師所需了解的各種數(shù)學方面,包括線性代數(shù)、概率等。
在本文中,我們將討論以下主題:
有抱負的數(shù)據(jù)科學家經常向我提出的最常見問題之一是–數(shù)據(jù)科學與機器學習之間有什么區(qū)別?更重要的是,這兩者背后的數(shù)學有什么區(qū)別?
我經常遇到以下問題:
盡管數(shù)據(jù)科學和機器學習有很多共同點,但是它們在數(shù)學上的關注仍然存在一些細微的差異。下面的雷達圖概括了我的觀點:
是的,數(shù)據(jù)科學和機器學習有很多重疊之處,但是它們的主要關注點相差很大。這種微妙的差異通常是我上面提到的問題的根源。
在數(shù)據(jù)科學中,我們的主要目標是探索和分析數(shù)據(jù),生成假設并測試它們
這些步驟通常是為了找出數(shù)據(jù)中隱藏的推論,而這些推論可能在第一眼看上去并不明顯。因此,我們必須嚴格依賴統(tǒng)計和概率的概念來比較和進行假設檢驗。
另一方面,機器學習更側重于線性代數(shù)的概念,因為它是所有復雜過程發(fā)生的主要階段(除了效率方面)。另一方面,多元微積分涉及數(shù)值優(yōu)化方面,這是大多數(shù)機器學習算法背后的驅動力。
數(shù)據(jù)科學通常被認為是機器學習的前提。考慮一下–我們希望機器學習算法的輸入數(shù)據(jù)是干凈的,并且要根據(jù)我們使用的技術進行準備。如果您正在尋求端到端的工作(數(shù)據(jù)科學+機器學習),最好使自己精通數(shù)據(jù)科學和機器學習所需的數(shù)學結合。
如果你一直重復你過去做過的事情,你會得到你一直得到的結果。我在這里轉述愛因斯坦的名言,但我相信你明白我的意思!
許多渴望學習機器學習的人會犯這樣的錯誤,即他們在上學時使用的方法是一樣的。這意味著要用筆和紙去鉆研定理、推導和問題。
這種傳統(tǒng)的方法離我們想要遵循的方向有一些遠,除非你想要在17世紀的數(shù)學家之爭中獲勝。那時候他們向對方提出了一系列數(shù)學上很有趣的問題,并在第二天解決。但你可以想象到這種情況,聽起來很厲害。但這不是在21世紀學習新概念的最佳方式。
那么我們應該如何才能在不陷入理論的情況下學習數(shù)學呢?
數(shù)據(jù)科學和機器學習中的數(shù)學不是關于處理數(shù)字的,而是關于發(fā)生了什么,為什么會發(fā)生,以及我們如何處理不同的事情來獲得我們想要的結果的數(shù)學。
在本質上:
我們應該更關注對任何給定表達式的直覺和幾何解釋:
這有助于我們理解這些令人難以置信的表情背后的含義。所有手動解決問題的繁重工作都不是必需的,也不需要技能。使用NumPy這樣的計算庫來完成它們比測試您的耐力更有意義。
現(xiàn)在,讓我們轉移注意力來理解為什么我們需要學習這些不同的數(shù)學分支以及什么是用直觀的方式學習數(shù)學的好資源。
有些人認為線性代數(shù)是21世紀的數(shù)學。我們可以看到這其中的意義——線性代數(shù)是機器學習和數(shù)據(jù)科學的支柱,它將在未來幾年給其他所有行業(yè)帶來革命性的變化。
正如之前已經討論過的,線性代數(shù)是所有機器學習算法生成結果的舞臺或平臺。
但是為什么是線性代數(shù)呢?
線性代數(shù)是聯(lián)立線性方程組表示的系統(tǒng)基礎。
假設我們有兩個線性方程式:
求解出x和y很容易,對吧?
我們可以通過簡單地將方程式1與-2相乘,然后將兩者相加來實現(xiàn):
結果,變量x被消除,y獲得為9。然后將y=9帶入公式,得出x的值為0。
這里的問題是,這個操作需要人類的直覺。我們的機器無法模仿同樣的直覺。他們只能理解特定表示形式的數(shù)據(jù)和集合格式的規(guī)則。
現(xiàn)在,為了建立與數(shù)據(jù)科學或機器學習的類比,每個方程表示來自數(shù)據(jù)集的單個觀察。左邊表示獨立輸入變量,右邊表示目標因變量。
數(shù)據(jù)集通常包含成百上千的觀測數(shù)據(jù)(如果不是上百萬體量的數(shù)據(jù)集的話),更不用說還有很多變量要處理。所以你認為我們可以通過數(shù)據(jù)集找到x和y的最佳值嗎?
絕對不是!我們當然更喜歡自動化來完成這項任務。這就是線性代數(shù)的用武之地。從廣義上來說:
線性代數(shù)是計算機能夠理解的知識的系統(tǒng)表示,線性代數(shù)中的所有運算都是系統(tǒng)規(guī)則。
這是我們上面解決的問題的代數(shù)表示。利用矩陣運算(規(guī)則集),我們可以在一眨眼的時間內求出x和y的值。這是線性代數(shù)在數(shù)據(jù)科學和機器學習中成為必需的主要原因。
大多數(shù)有抱負的數(shù)據(jù)科學和機器學習專業(yè)人士往往無法解釋他們在哪里需要使用多元微積分。正如我在文章開頭所提到的,不幸的是,這是一種非常常見的體驗。
如果你馬上說梯度下降,你就對了!但是你可能需要增加你現(xiàn)有的知識。
多元微積分,或者更精確的說是偏微分,被用來對一個給定函數(shù)(主要是凸函數(shù))進行數(shù)學優(yōu)化。
但我們?yōu)槭裁匆@樣做呢?我們知道我們計算了某個函數(shù)(成本函數(shù)或優(yōu)化函數(shù))的偏導數(shù)。但這有什么用呢?
很多人經常求出偏導數(shù)但卻不知道為什么這么做!我們需要立即糾正這個錯誤。
我們考慮一下梯度下降的情況。我們知道梯度下降的代價函數(shù)為:
我們計算m(斜率)和c(截距)的導數(shù)為:
但為什么只有偏導數(shù)呢?我們可以計算積分或者其他的運算。這是因為分化給我們成本函數(shù)的變化率對丁成本單獨對m和c。
但是你知道我們可以用向量的形式表示這些單獨的偏導數(shù)嗎?
這是偏導數(shù)的代數(shù)向量表示。
我相信你們大多數(shù)人以前一定見過這種表達方式,但沒有意識到它的含義。這種表示法叫做雅可比向量。我在高中的時候就遇到過這種情況;是的,它確實讓我的生活變得艱難!
下面是一些學習多元微積分的優(yōu)秀資源。再一次,我將強調更多關于直覺的部分,而不是僅僅死記硬背定理和規(guī)則:
機器學習所需的概率概念是基本的(大部分),但它仍然需要直覺。常用的分布形式有伯努利分布、高斯分布、概率密度函數(shù)、累積密度函數(shù)等。我們用它們來進行假設檢驗,在這種情況下,對概率的理解是非常必要的。
你會發(fā)現(xiàn)許多數(shù)據(jù)科學家,甚至是經驗豐富的老手,都無法解釋聲名狼藉的alpha值和p值的真正含義。他們經常被當作從冥王星來的陌生人,甚至沒有人愿意問。
但概率中最有趣的部分是貝葉斯定理。從高中開始,我們在很多地方都遇到過這個定理。這是公式:
我們通常通過輸入數(shù)字并計算答案來解決這個問題。但是你有沒有想過貝葉斯定理到底告訴了我們什么,后驗概率到底是什么意思?為什么我們還要一開始要計算它呢?
讓我們考慮一個示例(沒有數(shù)學理論?。?/p>
這是我們的朋友鮑勃(Bob)。作為他的同學,我們認為他是一個內向的人,經常獨處。我們相信他不喜歡交朋友。
因此,P(A)被稱為先驗。在這種情況下,我們稱其為鮑勃很少喜歡結交新朋友的假設。
現(xiàn)在,他在大學里遇到了愛德(Ed),與鮑勃不同,埃德是一個悠閑的人,渴望結交新朋友。
P(B)在這種情況下是Ed友好的概率。在一起度過的這一天Bob意識到Ed和他形影不離。結果,他們成了朋友。
P(B|A)就是他們成為朋友的代表:
現(xiàn)在,看一下右邊和我們上面建立的例子,分子代表了Bob是友好的P(A)和Ed是朋友的概率P(B|A)所有這些值都朝著左邊的結果計算,也就是:
完美!這正是我們在學校里所做的,對吧?我將進一步擴展它,你知道這個新值意味著什么?
大多數(shù)聲稱知道貝葉斯定理的人都會被困在這里。
這個新的價值只是我們對Bob的信念。換句話說,這是我們對Bob的新認識和P(A)的新值。 。
如果我要提取此這個例子,它將是這樣的:
我們對鮑勃做了一個假設,我們發(fā)現(xiàn)的證據(jù)是他實際上交了一個新朋友!
在這種情況下我們該怎么做呢?我們只是改變了對鮑勃的假設,他不是一個很內向的人。如果我們繼續(xù)觀察Bob幾次迭代,我們最終會很好地理解Bob的真正本質。
我知道你在想什么——這看起來就像我們在梯度下降和許多其他優(yōu)化算法中做的事情。我們假設一些隨機參數(shù),觀察預測值和真值,然后相應地調整參數(shù)。
樸素貝葉斯算法的工作原理與此類似,只是簡單地假設所有的輸入特征都是獨立的。為了全面觀察這一現(xiàn)象,我們需要深入研究貝葉斯網絡或概率圖形模型。它們本身可能非常強大,我可能會在以后的文章中探討它們。
這將是我們在本文中比較熟悉的主題之一。統(tǒng)計構成了機器學習的基礎,因此我在這里討論它。
每當我們談論統(tǒng)計數(shù)字時,我們腦海中總會浮現(xiàn)出一些熟悉的概念:
這些概念中的大多數(shù)都是相當初級的。除了最后一個,我看到經驗豐富的機器學習專家對p值和alpha值之類的東西有著錯誤的直覺。其中大多數(shù)在我們的機器學習模型(如線性和邏輯回歸)的性能中起著重要的作用。
我知道你可能會想知道——現(xiàn)在誰在使用線性模型?
好吧,大多數(shù)組織都高度重視模型的可解釋性,而不是準確性。集成模型往往缺乏這種可解釋性,因為它們更傾向于性能,并且廣泛用于數(shù)據(jù)科學競賽(而非行業(yè))。
說實話,我是那些被這些花哨的算法吸引的愛好者之一,我更喜歡直接跳到它們。結果,我的預測模型得到了低于標準的結果。
機器學習不僅僅是建立預測模型,而是利用現(xiàn)有的統(tǒng)計工具從給定的數(shù)據(jù)中提取盡可能多的信息。
機器學習的數(shù)學是一個經常被忽視或用錯誤的視角處理的基本方面。在本文中,我們討論了數(shù)據(jù)科學和機器學習所需的數(shù)學之間的區(qū)別。我們還學習了一些關于為什么以及在什么地方需要數(shù)學的指示。
聯(lián)系客服