寫在最前學(xué)習(xí)機器學(xué)習(xí),初學(xué)者的阻塞點往往不在機器學(xué)習(xí)本身,而是數(shù)學(xué)。面對教材中滿篇的數(shù)學(xué)公式時,如果你的數(shù)學(xué)基礎(chǔ)不牢固,就會逐步失去學(xué)習(xí)信心、喪失學(xué)習(xí)動力。最終,你投入了時間和精力,卻未達到預(yù)期的學(xué)習(xí)效果,也只能淪落個“半吊子”的水平。 有鑒于此,本 Chat 將會拆解機器學(xué)習(xí)主流模型,找到其背后依賴的數(shù)學(xué)知識點。再將這些知識點,進行整合歸并。因此,這篇 Chat 的背景是機器學(xué)習(xí),而講述的內(nèi)容是數(shù)學(xué)知識。我會取其精華、去其糟粕,讓你盡可能以較低成本,迅速掌握機器學(xué)習(xí)必備的數(shù)學(xué)知識。相信有了這些必備知識之后,你就能輕松讀懂其他機器學(xué)習(xí)教材并快速入門機器學(xué)習(xí)啦。 本文,我會用第一人稱和第二人稱來行文。這次我想突破一下自己,一反以往嚴肅行文的常態(tài),用一種詼諧幽默的方式來行文。本文適合的人群為,每次打開書都被公式搞垮的機器學(xué)習(xí)初學(xué)者。 看完 chat,別忘了再來關(guān)注一下我的公眾號“算法入門速成班”哦。 熱身在熱身環(huán)節(jié),我想和你先共同建立信心。高斯和你一樣都是兩只眼睛,拉格朗日和你一樣都是一個鼻子。因此,我想請你找個沒人的旮旯,對著鏡子中的自己,高呼三聲,“別怕,數(shù)學(xué)就是紙老虎”。 完成熱身后,恭喜你,你已經(jīng)成功了一半! 系統(tǒng)性學(xué)習(xí)與散點式學(xué)習(xí)系統(tǒng)性學(xué)習(xí)與散點式學(xué)習(xí),這是常用的兩種學(xué)習(xí)方式。
對于機器學(xué)習(xí)而言,你一定并且必須去花時間進行系統(tǒng)性學(xué)習(xí)。當你的學(xué)習(xí)進程被數(shù)學(xué)的某個知識點阻塞時,你也許想過系統(tǒng)性學(xué)習(xí)數(shù)學(xué)。當然了,如果你愿意花大量時間系統(tǒng)地研究數(shù)學(xué),并且最終把數(shù)學(xué)也給學(xué)會了,這一定是個好事情。可惜,更有可能的結(jié)果是,你買了很多數(shù)學(xué)書,卻發(fā)現(xiàn)數(shù)學(xué)根本學(xué)不會。此時,你就要學(xué)會變通。也就是,盡快把阻塞你的數(shù)學(xué)知識點突破掉,然后重回機器學(xué)習(xí)的主流程上來。這樣,你就能在機器學(xué)習(xí)的道路上不斷披荊斬棘。因此,你需要系統(tǒng)性學(xué)習(xí)機器學(xué)習(xí),并散點式學(xué)習(xí)數(shù)學(xué)。 機器學(xué)習(xí)中的數(shù)學(xué)既然確定了要散點式學(xué)習(xí)數(shù)學(xué),那就要找出到底是哪些阻塞點需要你去攻克。為此,我制作了下面一幅圖。 機器學(xué)習(xí)的建模過程包含 3 個步驟,分別是模型、策略、算法。在我的技術(shù)專欄和先前的 chat 文章《入門機器學(xué)習(xí),有這 3 把金鑰匙就夠了!》,我喜歡稱之為機器學(xué)習(xí)建模的 3 把金鑰匙。你可以直觀地理解為,這是 3 個方程。既然是 3 個方程,那么就需要利用數(shù)學(xué)知識去解方程。根據(jù)具體模型的不同,這 3 個方程的形式和解法也會各不相同。因此,上面的圖就是不同模型 3 個方程的不同表現(xiàn)形式,也是本次 chat 的總綱。 我們按照圖中的知識點進行聚合,可以得到如下機器學(xué)習(xí)的數(shù)學(xué)知識要點。
知識點就這 6 個。這些知識點,就像打怪通關(guān)一樣,你只需要各個擊破就能在機器學(xué)習(xí)的世界中興風(fēng)作浪。如果你不滿足于這些知識點,可以找些大學(xué)數(shù)學(xué)教材多學(xué)一些,那自然更好。 好了,下面我們就來闖關(guān),共計六關(guān)。 第一關(guān):平方誤差第一關(guān)熱身為主,比較簡單。誤差,指的是某個變量的錯誤程度,也就是 平方誤差,則采用一種平方處理的方式來衡量誤差。例如,用某個儀器去測量人的身高,這樣就有儀器的測量值和人身高的真實值,得到如下表:
那么,平方誤差就是 由這個例子可以知道,平方誤差的計算方法是,每一個樣本誤差的平方,再求和。則平方誤差的公式為 其中, 好的,到了這里,第一關(guān)通過。恭喜你! 第二關(guān):梯度下降法第二關(guān)開始難度系數(shù)增加。先明確大方向,到底梯度下降法是干嘛的呢?其實,你可以簡單粗暴地認為,梯度下降法就是求解函數(shù)極值的一種算法。因此,為了快速學(xué)習(xí)梯度下降法,你可能需要從求解函數(shù)的極值出發(fā)。請看下面例題。
代數(shù)法和求導(dǎo)法,是高中數(shù)學(xué)中常用的極值求解方法。然而,它們又都有著各自的局限性。代數(shù)法要求,函數(shù)必須可以被調(diào)整為多項式平方加常數(shù)的形式。求導(dǎo)法要去解方程,需要我們有著極強的方程求解能力。 當目標函數(shù)比較復(fù)雜時,這兩種方法就會失效。例如,求解函數(shù)
的極小值。此時,由于有了指數(shù)項,代數(shù)法不再適用。求導(dǎo)法會得到方程
這個方程只靠簡單數(shù)學(xué)的計算,根本無法找到解。此時就需要用更通用的極值求解方法,這就是梯度下降法。 到這里你一定會問,說了半天,到底什么是梯度。關(guān)于梯度,你需要掌握 3 個要點:
有了這 3 個要點,我們給出計算函數(shù)
看到這里,你千萬別害怕。我們再次建立信心,梯度這玩意就是紙老虎,老簡單了。看例題。
到了這里你已經(jīng)學(xué)會了梯度是什么。那么問題來了:1)梯度到底有什么用?2)梯度下降法到底是什么?3)梯度下降法是如何找到函數(shù)極值的? 前面說過,連續(xù)函數(shù)的極值處導(dǎo)數(shù)為 0。也就是說,非極值處的導(dǎo)數(shù)不為 0。假設(shè)有個向上張口的拋物線,這個拋物線一定會存在一個最小值(紅色)。如下圖。 ![]() 在這個線上有個點(橙色),這個點附近的導(dǎo)數(shù)值為 2,大于 0。那么這個函數(shù)的最小值的橫坐標,一定是在這個橙色點的橫坐標的左邊。反之,如果這個點的導(dǎo)數(shù)值小于 0,假設(shè)是綠色的點,導(dǎo)數(shù)為 -0.9。那么函數(shù)的最小值的橫坐標,一定在這個綠色點的橫坐標的右邊。而且這個目標最小值的橫坐標與這個觀測點(綠色、橙色)的橫坐標的距離,與導(dǎo)數(shù)的絕對值正相關(guān)。即,導(dǎo)數(shù)的絕對值越大,極值點越遠;反之亦然。 因此,可以得到結(jié)論:
用個公式來代替這兩條結(jié)論的描述,就是
其中, 是個正數(shù)。當 再仔細看看上面的公式,
期待你能看懂上面的算法。如果看不懂也沒關(guān)系,來個例題啥都明白了。
好的,到了這里,第二關(guān)通過。恭喜你! ![]() 面對機器學(xué)習(xí),初學(xué)者的阻塞點往往不在于機器學(xué)習(xí)本身,而是數(shù)學(xué)。機器學(xué)習(xí)是計算機技術(shù),但它的底層是數(shù)學(xué)。通常,在機器學(xué)習(xí)相關(guān)的教材中,通篇都是復(fù)雜的數(shù)學(xué)公式。初學(xué)者如果數(shù)學(xué)基礎(chǔ)不牢固,面對滿篇的數(shù)學(xué)公式時,就會逐步失去學(xué)習(xí)信心、減少學(xué)習(xí)動力,而達不到預(yù)期的學(xué)習(xí)效果,最終只能淪落個“半吊子”的水平。 有鑒于此,本 Chat 將會拆解機器學(xué)習(xí)主流模型,找到主流模型背后依賴的數(shù)學(xué)知識點。再講這些數(shù)學(xué)相關(guān)的知識點,進行統(tǒng)一整合歸并。因此,這篇 Chat 的背景是機器學(xué)習(xí),而講述的內(nèi)容是數(shù)學(xué)知識。我會用盡可能簡單的方式,取其精華、去其糟粕,讓你盡可能以極低成本,迅速掌握機器學(xué)習(xí)必備的數(shù)學(xué)知識。相信有了這些必備知識之后,你就能輕松讀懂其他機器學(xué)習(xí)教材并快速入門機器學(xué)習(xí)啦。 本 Chat 內(nèi)容:
適合人群:
最后一句,寫好每篇 Chat 是對我的要求,更是對你的尊重。 |
|
|