11′完整音頻請(qǐng)?jiān)凇緲O客時(shí)間】收聽(tīng)。 想要成為合格的,,或者更進(jìn)一步成為優(yōu)秀的人工智能工程師或數(shù)據(jù)科學(xué)家,,機(jī)器學(xué)習(xí)的各種基礎(chǔ)知識(shí)是必不可少的。然而,,機(jī)器學(xué)習(xí)領(lǐng)域浩如煙海,,各類(lèi)教材和入門(mén)課程層出不窮。特別是機(jī)器學(xué)習(xí)基礎(chǔ)需要不少的數(shù)學(xué)知識(shí),這對(duì)于想進(jìn)入這一領(lǐng)域的工程師而言,,無(wú)疑是一個(gè)比較高的門(mén)檻,。 今天,我來(lái)和你聊一聊如何學(xué)習(xí)和掌握機(jī)器學(xué)習(xí)基礎(chǔ)知識(shí),,又如何通過(guò)核心的知識(shí)脈絡(luò)快速掌握更多的機(jī)器學(xué)習(xí)算法和模型,。 要問(wèn)機(jī)器學(xué)習(xí)主要能解決什么問(wèn)題,拋開(kāi)各式各樣的機(jī)器學(xué)習(xí)流派和層出不窮的算法模型不談,,機(jī)器學(xué)習(xí)主要解決的是兩類(lèi)問(wèn)題:監(jiān)督學(xué)習(xí)和無(wú)監(jiān)督學(xué)習(xí),。掌握機(jī)器學(xué)習(xí),主要就是學(xué)習(xí)這兩類(lèi)問(wèn)題,,掌握解決這兩類(lèi)問(wèn)題的基本思路,。 什么是解決這兩類(lèi)問(wèn)題的基本思路呢?基本思路,,簡(jiǎn)而言之就是“套路”,。放在這里的語(yǔ)境,那就是指:
這三步就是我們學(xué)習(xí)監(jiān)督學(xué)習(xí)和無(wú)監(jiān)督學(xué)習(xí),乃至所有的機(jī)器學(xué)習(xí)算法的核心思路,。機(jī)器學(xué)習(xí)中不同模型,、不同算法都是圍繞這三步來(lái)展開(kāi)的,我們不妨把這個(gè)思路叫作“三步套路”,。 那什么是監(jiān)督學(xué)習(xí)呢,?監(jiān)督學(xué)習(xí)是指這么一個(gè)過(guò)程,我們通過(guò)外部的響應(yīng)變量(Response Variable)來(lái)指導(dǎo)模型學(xué)習(xí)我們關(guān)心的任務(wù),,并達(dá)到我們需要的目的,。這也就是“監(jiān)督學(xué)習(xí)”中“監(jiān)督”兩字的由來(lái)。 也就是說(shuō),,監(jiān)督學(xué)習(xí)的最終目標(biāo),,是使模型可以更準(zhǔn)確地對(duì)我們所需要的響應(yīng)變量建模。 比如,,我們希望通過(guò)一系列特征來(lái)預(yù)測(cè)某個(gè)地區(qū)的房屋銷(xiāo)售價(jià)格,,希望預(yù)測(cè)電影的票房,,或者希望預(yù)測(cè)用戶(hù)可能購(gòu)買(mǎi)的商品。這里的“銷(xiāo)售價(jià)格”,、“電影票房”以及“可能購(gòu)買(mǎi)的商品”都是監(jiān)督學(xué)習(xí)中的響應(yīng)變量,。 那什么是無(wú)監(jiān)督學(xué)習(xí)呢?通常情況下,,無(wú)監(jiān)督學(xué)習(xí)并沒(méi)有明顯的響應(yīng)變量,。無(wú)監(jiān)督學(xué)習(xí)的核心,往往是希望發(fā)現(xiàn)數(shù)據(jù)內(nèi)部的潛在結(jié)構(gòu)和規(guī)律,,為我們進(jìn)行下一步?jīng)Q斷提供參考,。 典型的無(wú)監(jiān)督學(xué)習(xí)就是希望能夠利用數(shù)據(jù)特征來(lái)把數(shù)據(jù)分組,機(jī)器學(xué)習(xí)語(yǔ)境下叫作“聚類(lèi)”,。 根據(jù)不同的應(yīng)用場(chǎng)景,,聚類(lèi)又有很多變種,比如認(rèn)為某一個(gè)數(shù)據(jù)點(diǎn)屬于一個(gè)類(lèi)別,,或者認(rèn)為某一個(gè)數(shù)據(jù)點(diǎn)同時(shí)屬于好幾個(gè)類(lèi)別,,只是屬于每個(gè)類(lèi)別的概率不同等等。 無(wú)監(jiān)督學(xué)習(xí)的另外一個(gè)作用是為監(jiān)督學(xué)習(xí)提供更加有力的特征,。通常情況下,,無(wú)監(jiān)督學(xué)習(xí)能夠挖掘出數(shù)據(jù)內(nèi)部的結(jié)構(gòu),而這些結(jié)構(gòu)可能會(huì)比我們提供的數(shù)據(jù)特征更能抓住數(shù)據(jù)的本質(zhì)聯(lián)系,,因此監(jiān)督學(xué)習(xí)中往往也需要無(wú)監(jiān)督學(xué)習(xí)來(lái)進(jìn)行輔助,。 我們簡(jiǎn)要回顧了機(jī)器學(xué)習(xí)中兩大類(lèi)問(wèn)題的定義。在學(xué)習(xí)這兩大類(lèi)模型和算法的時(shí)候,,有這么一個(gè)技巧,,就是要不斷地回歸到上面提到的基本思路上去,就是這個(gè)“三步套路”,,反復(fù)用這三個(gè)方面來(lái)審視當(dāng)前的模型,。另外,我們也可以慢慢地體會(huì)到,,任何新的模型或者算法的誕生,,往往都是基于舊有的模型算法,在以上三個(gè)方面中的某一個(gè)或幾個(gè)方向有所創(chuàng)新,。 監(jiān)督學(xué)習(xí)的基礎(chǔ)是三類(lèi)模型:
掌握這三類(lèi)模型就掌握了監(jiān)督學(xué)習(xí)的主干,。 利用監(jiān)督學(xué)習(xí)來(lái)解決的問(wèn)題,,占所有機(jī)器學(xué)習(xí)或者人工智能任務(wù)的絕大多數(shù)。這里面,,有 90% 甚至更多的監(jiān)督學(xué)習(xí)問(wèn)題,,都可以用這三類(lèi)模型得到比較好的解決,。 這三類(lèi)監(jiān)督學(xué)習(xí)模型又可以細(xì)分為處理兩類(lèi)問(wèn)題:
分類(lèi)問(wèn)題的核心是如何利用模型來(lái)判別一個(gè)數(shù)據(jù)點(diǎn)的類(lèi)別,。 這個(gè)類(lèi)別一般是離散的,比如兩類(lèi)或者多類(lèi),。回歸問(wèn)題的核心則是利用模型來(lái)輸出一個(gè)預(yù)測(cè)的數(shù)值,。 這個(gè)數(shù)值一般是一個(gè)實(shí)數(shù),是連續(xù)的,。 有了這個(gè)基本的認(rèn)識(shí)以后,,我們利用前面的思路來(lái)看一下如何梳理監(jiān)督學(xué)習(xí)的思路。這里用線性模型的回歸問(wèn)題來(lái)做例子,。但整個(gè)思路可以推廣到所有的監(jiān)督學(xué)習(xí)模型,。 線性回歸模型 (Linear Regression)是所有回歸模型中最簡(jiǎn)單也是最核心的一個(gè)模型。我們依次來(lái)看上面所講的“三步套路”,。 首先第一步,,我們需要回答的問(wèn)題是,線性回歸對(duì)現(xiàn)實(shí)場(chǎng)景是如何抽象的,。顧名思義,,線性回歸認(rèn)為現(xiàn)實(shí)場(chǎng)景中的響應(yīng)變量(比如房?jī)r(jià)、比如票房)和數(shù)據(jù)特征之間存在線性關(guān)系,。而線性回歸的數(shù)學(xué)假設(shè)有兩個(gè)部分:
有了這樣的假設(shè)以后。第二步就要看線性回歸模型的參數(shù)是如何求解的,。這里從歷史上就衍生出了很多方法,。比如在教科書(shū)中一般會(huì)介紹線性回歸的解析解(Closed-form Solution)。 線性回歸的解析解雖然簡(jiǎn)單優(yōu)美,,但是在現(xiàn)實(shí)計(jì)算中一般不直接采用,,因?yàn)樾枰獙?duì)矩陣進(jìn)行逆運(yùn)算,而矩陣求逆運(yùn)算量很大,。解析解主要用于各種理論分析中,。 線性回歸的參數(shù)還可以用數(shù)值計(jì)算的辦法,比如梯度下降(Gradient Descent)的方法求得近似結(jié)果,。然而梯度下降需要對(duì)所有的數(shù)據(jù)點(diǎn)進(jìn)行掃描,。當(dāng)數(shù)據(jù)量很多的時(shí)候,梯度下降會(huì)變得很慢,。于是隨機(jī)梯度下降(Stochastic Gradient Descent)算法就應(yīng)運(yùn)而生,。 隨機(jī)梯度下降并不需要對(duì)所有的數(shù)據(jù)點(diǎn)掃描后才對(duì)參數(shù)進(jìn)行更新,,而可以對(duì)一部分?jǐn)?shù)據(jù),有時(shí)甚至是一個(gè)數(shù)據(jù)點(diǎn)進(jìn)行更新,。 從這里我們也可以看到,,對(duì)于同一個(gè)模型而言,可以用不同的算法來(lái)求解模型的參數(shù),。這是機(jī)器學(xué)習(xí)的一個(gè)核心特點(diǎn),。 最后第三步,我們來(lái)看如何評(píng)估線性回歸模型,。由于線性回歸是對(duì)問(wèn)題的響應(yīng)變量進(jìn)行一個(gè)實(shí)數(shù)預(yù)測(cè),。那么,最簡(jiǎn)單的評(píng)估方式就是看這個(gè)預(yù)測(cè)值和真實(shí)值之間的絕對(duì)誤差,。如果對(duì)于每一個(gè)數(shù)據(jù)點(diǎn)我們都可以計(jì)算這么一個(gè)誤差,,那么對(duì)于所有的數(shù)據(jù)點(diǎn)而言,我們就可以計(jì)算一個(gè)平均誤差,。 上述對(duì)于線性回歸的討論可以擴(kuò)展到監(jiān)督學(xué)習(xí)的三類(lèi)基本模型,。這樣你就可以很快掌握這些模型的特點(diǎn)和這些模型算法之間的聯(lián)系。 現(xiàn)實(shí)中絕大多數(shù)的應(yīng)用場(chǎng)景并不需要無(wú)監(jiān)督學(xué)習(xí),。然而無(wú)監(jiān)督學(xué)習(xí)中很多有價(jià)值的思想非常值得初學(xué)者掌握,。另外,,無(wú)監(jiān)督學(xué)習(xí),,特別是深度學(xué)習(xí)支持下的無(wú)監(jiān)督學(xué)習(xí),,是目前機(jī)器學(xué)習(xí)乃至深度學(xué)習(xí)的前沿研究方向。 所以從長(zhǎng)遠(yuǎn)來(lái)看,,了解無(wú)監(jiān)督學(xué)習(xí)是非常必要的,。 我們前面說(shuō)到,,無(wú)監(jiān)督學(xué)習(xí)的主要目的就是挖掘出數(shù)據(jù)內(nèi)在的聯(lián)系,。這里的根本問(wèn)題是,,不同的無(wú)監(jiān)督學(xué)習(xí)方法對(duì)數(shù)據(jù)內(nèi)部的結(jié)構(gòu)有不同的假設(shè),。因此,,無(wú)監(jiān)督學(xué)習(xí)不同模型之間常常有很大的差別。在眾多無(wú)監(jiān)督學(xué)習(xí)模型中,,聚類(lèi)模型無(wú)疑是重要的代表,。了解和熟悉聚類(lèi)模型有助于我們了解數(shù)據(jù)的一些基本信息。 聚類(lèi)模型也有很多種類(lèi),。這里我們就用最常見(jiàn)的,、非常重要的 K 均值算法 (K-means),,來(lái)看看如何通過(guò)前面講過(guò)的“三步套路”來(lái)掌握其核心思路,。 首先,,K 均值算法認(rèn)為數(shù)據(jù)由 K 個(gè)類(lèi)別組成,。每個(gè)類(lèi)別內(nèi)部的數(shù)據(jù)相距比較近,,而距離所有其他類(lèi)別中的數(shù)據(jù)都比較遙遠(yuǎn),。這里面的數(shù)學(xué)假設(shè),,需要定義數(shù)據(jù)到一個(gè)類(lèi)別的距離以及距離函數(shù)本身,。在 K 均值算法中,,數(shù)據(jù)到一個(gè)類(lèi)別的距離被定義為到這個(gè)類(lèi)別的平均點(diǎn)的距離。這也是 K 均值名字的由來(lái)。而距離函數(shù)則采用了歐幾里得距離,,來(lái)衡量?jī)蓚€(gè)數(shù)據(jù)點(diǎn)之間的遠(yuǎn)近,。 直接求解 K 均值的目標(biāo)函數(shù)是一個(gè) NP 難(NP-hard)的問(wèn)題。于是大多數(shù)現(xiàn)有的方法都是用迭代的貪心算法來(lái)求解。 一直以來(lái),,對(duì)聚類(lèi)問(wèn)題、對(duì)無(wú)監(jiān)督學(xué)習(xí)任務(wù)的評(píng)估都是機(jī)器學(xué)習(xí)的一個(gè)難點(diǎn),。無(wú)監(jiān)督學(xué)習(xí)沒(méi)有一個(gè)真正的目標(biāo),,或者是我們之前提到的響應(yīng)變量,因此無(wú)法真正客觀地衡量模型或者算法的好壞,。 對(duì)于 K 均值算法而言,,比較簡(jiǎn)單的衡量指標(biāo)就是,看所有類(lèi)別內(nèi)部的數(shù)據(jù)點(diǎn)的平均距離和類(lèi)別兩兩之間的所有點(diǎn)的平均距離的大小,。如果聚類(lèi)成功,,則類(lèi)別內(nèi)部的數(shù)據(jù)點(diǎn)會(huì)相距較近,,而類(lèi)別兩兩之間的所有點(diǎn)的平均距離則比較遠(yuǎn),。 以上我們通過(guò)“三步套路”的三個(gè)方面討論了 K 均值算法的核心思路,這種討論方法也適用所有的聚類(lèi)模型和算法,。 當(dāng)你可以熟練使用我今天介紹的“三步套路”,,去分析更多監(jiān)督學(xué)習(xí)和無(wú)監(jiān)督學(xué)習(xí)的模型算法以后,對(duì)于基礎(chǔ)的內(nèi)容,,也就是教科書(shū)上經(jīng)常講到的內(nèi)容,,你就可以去看這些內(nèi)容究竟是在講解這三個(gè)方面的哪個(gè)方面。 對(duì)于絕大多數(shù)模型來(lái)說(shuō),,第一部分往往是最重要的,,也就是說(shuō),這個(gè)模型究竟和現(xiàn)實(shí)問(wèn)題的聯(lián)系是什么,。 第二部分,,也就是模型的求解,取決于模型本身的復(fù)雜度和成熟度,,現(xiàn)在很多模型往往都有現(xiàn)成的軟件包提供求解過(guò)程,。而第三部分,模型的評(píng)估則在現(xiàn)實(shí)生產(chǎn)中至關(guān)重要,。牢牢把握這三個(gè)方面,,來(lái)對(duì)機(jī)器學(xué)習(xí)模型算法進(jìn)行討論,是成長(zhǎng)為成熟數(shù)據(jù)科學(xué)家必不可少的過(guò)程,。 今天我為你講了掌握機(jī)器學(xué)習(xí)基礎(chǔ)知識(shí)的一些核心思路,。一起來(lái)回顧下要點(diǎn):
最后,給你留一個(gè)思考題,,在現(xiàn)實(shí)場(chǎng)景中,,當(dāng)你發(fā)現(xiàn)一個(gè)模型并沒(méi)有很好地解決你的問(wèn)題時(shí),從這個(gè)“三步套路”的角度來(lái)看,,究竟哪個(gè)方面最容易出問(wèn)題,? 本文摘自洪亮劼在極客時(shí)間 App 開(kāi)設(shè)的付費(fèi)專(zhuān)欄“AI 技術(shù)內(nèi)參”,歡迎掃描下圖二維碼在極客時(shí)間給我留言,,和我一起討論,。
|
|