機(jī)器學(xué)習(xí)和深度學(xué)習(xí)算法流程
終于考上人工智能的研究僧啦,不知道機(jī)器學(xué)習(xí)和深度學(xué)習(xí)有啥區(qū)別,感覺(jué)一切都是深度學(xué)習(xí)
挖槽,聽(tīng)說(shuō)學(xué)長(zhǎng)已經(jīng)調(diào)了10個(gè)月的參數(shù)準(zhǔn)備發(fā)有2000億參數(shù)的T9開(kāi)天霹靂模型,我要調(diào)參發(fā)T10準(zhǔn)備拿個(gè)Best Paper
現(xiàn)在搞傳統(tǒng)機(jī)器學(xué)習(xí)相關(guān)的研究論文確實(shí)占比不太高,有的人吐槽深度學(xué)習(xí)就是個(gè)系統(tǒng)工程而已,沒(méi)有數(shù)學(xué)含金量。
但是無(wú)可否認(rèn)的是深度學(xué)習(xí)是在太好用啦,極大地簡(jiǎn)化了傳統(tǒng)機(jī)器學(xué)習(xí)的整體算法分析和學(xué)習(xí)流程,更重要的是在一些通用的領(lǐng)域任務(wù)刷新了傳統(tǒng)機(jī)器學(xué)習(xí)算法達(dá)不到的精度和準(zhǔn)確率。
深度學(xué)習(xí)這幾年特別火,就像5年前的大數(shù)據(jù)一樣,不過(guò)深度學(xué)習(xí)其主要還是屬于機(jī)器學(xué)習(xí)的范疇領(lǐng)域內(nèi),所以這篇文章里面我們來(lái)嘮一嘮機(jī)器學(xué)習(xí)和深度學(xué)習(xí)的算法流程區(qū)別。
1、機(jī)器學(xué)習(xí)的算法流程
實(shí)際上機(jī)器學(xué)習(xí)研究的就是數(shù)據(jù)科學(xué)(聽(tīng)上去有點(diǎn)無(wú)聊),下面是機(jī)器學(xué)習(xí)算法的主要流程:
數(shù)據(jù)集準(zhǔn)備
探索性的對(duì)數(shù)據(jù)進(jìn)行分析
數(shù)據(jù)預(yù)處理
數(shù)據(jù)分割
機(jī)器學(xué)習(xí)算法建模
選擇機(jī)器學(xué)習(xí)任務(wù)
最后就是評(píng)價(jià)機(jī)器學(xué)習(xí)算法對(duì)實(shí)際數(shù)據(jù)的應(yīng)用情況如何
=
1.1 數(shù)據(jù)集
首先我們要研究的是數(shù)據(jù)的問(wèn)題,數(shù)據(jù)集是構(gòu)建機(jī)器學(xué)習(xí)模型流程的起點(diǎn)。簡(jiǎn)單來(lái)說(shuō),數(shù)據(jù)集本質(zhì)上是一個(gè)M×N矩陣,其中M代表列(特征),N代表行(樣本)。
列可以分解為X和Y,X是可以指特征、獨(dú)立變量或者是輸入變量。Y也是可以指類(lèi)別標(biāo)簽、因變量和輸出變量。
1.2 數(shù)據(jù)分析
進(jìn)行探索性數(shù)據(jù)分析(Exploratory data analysis, EDA)是為了獲得對(duì)數(shù)據(jù)的初步了解。EDA主要的工作是:對(duì)數(shù)據(jù)進(jìn)行清洗,對(duì)數(shù)據(jù)進(jìn)行描述(描述統(tǒng)計(jì)量,圖表),查看數(shù)據(jù)的分布,比較數(shù)據(jù)之間的關(guān)系,培養(yǎng)對(duì)數(shù)據(jù)的直覺(jué),對(duì)數(shù)據(jù)進(jìn)行總結(jié)等。
探索性數(shù)據(jù)分析方法簡(jiǎn)單來(lái)說(shuō)就是去了解數(shù)據(jù),分析數(shù)據(jù),搞清楚數(shù)據(jù)的分布。主要注重?cái)?shù)據(jù)的真實(shí)分布,強(qiáng)調(diào)數(shù)據(jù)的可視化,使分析者能一目了然看出數(shù)據(jù)中隱含的規(guī)律,從而得到啟發(fā),以此幫助分析者找到適合數(shù)據(jù)的模型。
在一個(gè)典型的機(jī)器學(xué)習(xí)算法流程和數(shù)據(jù)科學(xué)項(xiàng)目里面,我做的第一件事就是通過(guò) "盯住數(shù)據(jù)",以便更好地了解數(shù)據(jù)。個(gè)人通常使用的三大EDA方法包括:
描述性統(tǒng)計(jì)
平均數(shù)、中位數(shù)、模式、標(biāo)準(zhǔn)差。
數(shù)據(jù)可視化
熱力圖(辨別特征內(nèi)部相關(guān)性)、箱形圖(可視化群體差異)、散點(diǎn)圖(可視化特征之間的相關(guān)性)、主成分分析(可視化數(shù)據(jù)集中呈現(xiàn)的聚類(lèi)分布)等。
數(shù)據(jù)整形
對(duì)數(shù)據(jù)進(jìn)行透視、分組、過(guò)濾等。
1.3 數(shù)據(jù)預(yù)處理
數(shù)據(jù)預(yù)處理,其實(shí)就是對(duì)數(shù)據(jù)進(jìn)行清理、數(shù)據(jù)整理或普通數(shù)據(jù)處理。指對(duì)數(shù)據(jù)進(jìn)行各種檢查和校正過(guò)程,以糾正缺失值、拼寫(xiě)錯(cuò)誤、使數(shù)值正常化/標(biāo)準(zhǔn)化以使其具有可比性、轉(zhuǎn)換數(shù)據(jù)(如對(duì)數(shù)轉(zhuǎn)換)等問(wèn)題。
例如對(duì)圖像進(jìn)行resize成統(tǒng)一的大小或者分辨率。
數(shù)據(jù)的質(zhì)量將對(duì)機(jī)器學(xué)習(xí)算法模型的質(zhì)量好壞產(chǎn)生很大的影響。因此,為了達(dá)到最好的機(jī)器學(xué)習(xí)模型質(zhì)量,傳統(tǒng)的機(jī)器學(xué)習(xí)算法流程中,其實(shí)很大一部分工作就是在對(duì)數(shù)據(jù)進(jìn)行分析和處理。
一般來(lái)說(shuō),數(shù)據(jù)預(yù)處理可以輕松地占到機(jī)器學(xué)習(xí)項(xiàng)目流程中80%的時(shí)間,而實(shí)際的模型建立階段和后續(xù)的模型分析大概僅占到剩余的20%。
1.4 數(shù)據(jù)分割
訓(xùn)練集 & 測(cè)試集
在機(jī)器學(xué)習(xí)模型的開(kāi)發(fā)流程中,希望訓(xùn)練好的模型能在新的、未見(jiàn)過(guò)的數(shù)據(jù)上表現(xiàn)良好。為了模擬新的、未見(jiàn)過(guò)的數(shù)據(jù),對(duì)可用數(shù)據(jù)進(jìn)行數(shù)據(jù)分割,從而將已經(jīng)處理好的數(shù)據(jù)集分割成2部分:訓(xùn)練集合測(cè)試集。
第一部分是較大的數(shù)據(jù)子集,用作訓(xùn)練集(如占原始數(shù)據(jù)的80%);第二部分通常是較小的子集,用作測(cè)試集(其余20%的數(shù)據(jù))。
接下來(lái),利用訓(xùn)練集建立預(yù)測(cè)模型,然后將這種訓(xùn)練好的模型應(yīng)用于測(cè)試集(即作為新的、未見(jiàn)過(guò)的數(shù)據(jù))上進(jìn)行預(yù)測(cè)。根據(jù)模型在測(cè)試集上的表現(xiàn)來(lái)選擇最佳模型,為了獲得最佳模型,還可以進(jìn)行超參數(shù)優(yōu)化。
訓(xùn)練集 & 驗(yàn)證集 & 測(cè)試集
另一種常見(jiàn)的數(shù)據(jù)分割方法是將數(shù)據(jù)分割成3部分:
訓(xùn)練集
驗(yàn)證集
測(cè)試集
訓(xùn)練集用于建立預(yù)測(cè)模型,同時(shí)對(duì)驗(yàn)證集進(jìn)行評(píng)估,據(jù)此進(jìn)行預(yù)測(cè),可以進(jìn)行模型調(diào)優(yōu)(如超參數(shù)優(yōu)化),并根據(jù)驗(yàn)證集的結(jié)果選擇性能最好的模型。
驗(yàn)證集的操作方式跟訓(xùn)練集類(lèi)似。不過(guò)值得注意的是,測(cè)試集不參與機(jī)器學(xué)習(xí)模型的建立和準(zhǔn)備,是機(jī)器學(xué)習(xí)模型訓(xùn)練過(guò)程中單獨(dú)留出的樣本集,用于調(diào)整模型的超參數(shù)和對(duì)模型的能力進(jìn)行初步評(píng)估。通常邊訓(xùn)練邊驗(yàn)證,這里的驗(yàn)證就是用驗(yàn)證集來(lái)檢驗(yàn)?zāi)P偷某醪叫Ч?/p>
交叉驗(yàn)證
實(shí)際上數(shù)據(jù)是機(jī)器學(xué)習(xí)流程中最寶貴的,為了更加經(jīng)濟(jì)地利用現(xiàn)有數(shù)據(jù),通常使用N倍交叉驗(yàn)證,將數(shù)據(jù)集分割成N個(gè)。在這樣的N倍數(shù)據(jù)集中,其中一個(gè)被留作測(cè)試數(shù)據(jù),而其余的則被用作建立模型的訓(xùn)練數(shù)據(jù)。通過(guò)反復(fù)交叉迭代的方式來(lái)對(duì)機(jī)器學(xué)習(xí)流程進(jìn)行驗(yàn)證。
這種交叉驗(yàn)證的方法在機(jī)器學(xué)習(xí)流程中被廣泛的使用,但是深度學(xué)習(xí)中使用得比較少哈。
1.5 機(jī)器學(xué)習(xí)算法建模
下面是最有趣的部分啦,數(shù)據(jù)篩選和處理過(guò)程其實(shí)都是很枯燥乏味的,現(xiàn)在可以使用精心準(zhǔn)備的數(shù)據(jù)來(lái)建模。根據(jù)taget變量(通常稱(chēng)為Y變量)的數(shù)據(jù)類(lèi)型,可以建立一個(gè)分類(lèi)或回歸模型。
機(jī)器學(xué)習(xí)算法
機(jī)器學(xué)習(xí)算法可以大致分為以下三種類(lèi)型之一:
監(jiān)督學(xué)習(xí)
是一種機(jī)器學(xué)習(xí)任務(wù),建立輸入X和輸出Y變量之間的數(shù)學(xué)(映射)關(guān)系。這樣的(X、Y)對(duì)構(gòu)成了用于建立模型的標(biāo)簽數(shù)據(jù),以便學(xué)習(xí)如何從輸入中預(yù)測(cè)輸出。
無(wú)監(jiān)督學(xué)習(xí)
是一種只利用輸入X變量的機(jī)器學(xué)習(xí)任務(wù)。X變量是未標(biāo)記的數(shù)據(jù),學(xué)習(xí)算法在建模時(shí)使用的是數(shù)據(jù)的固有結(jié)構(gòu)。
強(qiáng)化學(xué)習(xí)
是一種決定下一步行動(dòng)方案的機(jī)器學(xué)習(xí)任務(wù),它通過(guò)試錯(cuò)學(xué)習(xí)(trial and error learning)來(lái)實(shí)現(xiàn)這一目標(biāo),努力使reward回報(bào)最大化。
參數(shù)調(diào)優(yōu)
傳說(shuō)中的調(diào)參俠主要干的就是這個(gè)工作啦。超參數(shù)本質(zhì)上是機(jī)器學(xué)習(xí)算法的參數(shù),直接影響學(xué)習(xí)過(guò)程和預(yù)測(cè)性能。由于沒(méi)有萬(wàn)能的超參數(shù)設(shè)置,可以普遍適用于所有數(shù)據(jù)集,因此需要進(jìn)行超參數(shù)優(yōu)化。
以隨機(jī)森林為例。在使用randomForest時(shí),通常會(huì)對(duì)兩個(gè)常見(jiàn)的超參數(shù)進(jìn)行優(yōu)化,其中包括mtry和ntree參數(shù)。mtry(maxfeatures)代表在每次分裂時(shí)作為候選變量隨機(jī)采樣的變量數(shù)量,而ntree(nestimators)代表要生長(zhǎng)的樹(shù)的數(shù)量。
另一種在10年前仍然非常主流的機(jī)器學(xué)習(xí)算法是支持向量機(jī)SVM。需要優(yōu)化的超參數(shù)是徑向基函數(shù)(RBF)內(nèi)核的C參數(shù)和gamma參數(shù)。C參數(shù)是一個(gè)限制過(guò)擬合的懲罰項(xiàng),而gamma參數(shù)則控制RBF核的寬度。
調(diào)優(yōu)通常是為了得出超參數(shù)的較佳值集,很多時(shí)候不要去追求找到超參一個(gè)最優(yōu)值,其實(shí)調(diào)參俠只是調(diào)侃調(diào)侃,真正需要理解掌握算法原理,找到適合數(shù)據(jù)和模型的參數(shù)就可以啦。
特征選擇
特征選擇從字面上看就是從最初的大量特征中選擇一個(gè)特征子集的過(guò)程。除了實(shí)現(xiàn)高精度的模型外,機(jī)器學(xué)習(xí)模型構(gòu)建最重要的一個(gè)方面是獲得可操作的見(jiàn)解,為了實(shí)現(xiàn)這一目標(biāo),能夠從大量的特征中選擇出重要的特征子集非常重要。
特征選擇的任務(wù)本身就可以構(gòu)成一個(gè)全新的研究領(lǐng)域,在這個(gè)領(lǐng)域中,大量的努力都是為了設(shè)計(jì)新穎的算法和方法。從眾多可用的特征選擇算法中,一些經(jīng)典的方法是基于模擬退火和遺傳算法。除此之外,還有大量基于進(jìn)化算法(如粒子群優(yōu)化、蟻群優(yōu)化等)和隨機(jī)方法(如蒙特卡洛)的方法。
1.6 機(jī)器學(xué)習(xí)任務(wù)
在監(jiān)督學(xué)習(xí)中,兩個(gè)常見(jiàn)的機(jī)器學(xué)習(xí)任務(wù)包括分類(lèi)和回歸。
分類(lèi)
一個(gè)訓(xùn)練好的分類(lèi)模型將一組變量作為輸入,并預(yù)測(cè)輸出的類(lèi)標(biāo)簽。下圖是由不同顏色和標(biāo)簽表示的三個(gè)類(lèi)。每一個(gè)小的彩色球體代表一個(gè)數(shù)據(jù)樣本。三類(lèi)數(shù)據(jù)樣本在二維中的顯示,這種可視化圖可以通過(guò)執(zhí)行PCA分析并顯示前兩個(gè)主成分(PC)來(lái)創(chuàng)建;或者也可以選擇兩個(gè)變量的簡(jiǎn)單散點(diǎn)圖可視化。
性能指標(biāo)
如何知道訓(xùn)練出來(lái)的機(jī)器學(xué)習(xí)模型表現(xiàn)好或壞?就是使用性能評(píng)價(jià)指標(biāo)(metrics),一些常見(jiàn)的評(píng)估分類(lèi)性能的指標(biāo)包括準(zhǔn)確率(AC)、靈敏度(SN)、特異性(SP)和馬太相關(guān)系數(shù)(MCC)。
回歸
最簡(jiǎn)單的回歸模式,可以通過(guò)以下簡(jiǎn)單等式很好地總結(jié):Y = f(X)。其中,Y對(duì)應(yīng)量化輸出變量,X指輸入變量,f指計(jì)算輸出值作為輸入特征的映射函數(shù)(從機(jī)器學(xué)習(xí)模型中得到)。
上面的回歸例子公式的實(shí)質(zhì)是,如果X已知,就可以推導(dǎo)出Y。一旦Y被計(jì)算(預(yù)測(cè))出來(lái),一個(gè)流行的可視化方式是將實(shí)際值與預(yù)測(cè)值做一個(gè)簡(jiǎn)單的散點(diǎn)圖,如下圖所示。
對(duì)回歸模型的性能進(jìn)行評(píng)估,以評(píng)估擬合模型可以準(zhǔn)確預(yù)測(cè)輸入數(shù)據(jù)值的程度。評(píng)估回歸模型性能的常用指標(biāo)是確定系數(shù)(R2)。此外,均方誤差(MSE)以及均方根誤差(RMSE)也是衡量殘差或預(yù)測(cè)誤差的常用指標(biāo)。
2、深度學(xué)習(xí)算法流程
深度學(xué)習(xí)實(shí)際上是機(jī)器學(xué)習(xí)中的一種范式,所以他們的主要流程是差不多的。深度學(xué)習(xí)則是優(yōu)化了數(shù)據(jù)分析,建模過(guò)程的流程也是縮短了,由神經(jīng)網(wǎng)絡(luò)統(tǒng)一了原來(lái)機(jī)器學(xué)習(xí)中百花齊放的算法。
在深度學(xué)習(xí)正式大規(guī)模使用之前呢,機(jī)器學(xué)習(xí)算法流程中藥花費(fèi)很多時(shí)間去收集數(shù)據(jù),然后對(duì)數(shù)據(jù)進(jìn)行篩選,嘗試各種不同的特征提取機(jī)器學(xué)習(xí)算法,或者結(jié)合多種不同的特征對(duì)數(shù)據(jù)進(jìn)行分類(lèi)和回歸。
下面是機(jī)器學(xué)習(xí)算法的主要流程:主要從
數(shù)據(jù)集準(zhǔn)備
數(shù)據(jù)預(yù)處理
數(shù)據(jù)分割
定義神經(jīng)網(wǎng)絡(luò)模型
訓(xùn)練網(wǎng)絡(luò)
深度學(xué)習(xí)不需要我們自己去提取特征,而是通過(guò)神經(jīng)網(wǎng)絡(luò)自動(dòng)對(duì)數(shù)據(jù)進(jìn)行高維抽象學(xué)習(xí),減少了特征工程的構(gòu)成,在這方面節(jié)約了很多時(shí)間。
但是同時(shí)因?yàn)橐肓烁由?、更?fù)雜的網(wǎng)絡(luò)模型結(jié)構(gòu),所以調(diào)參工作變得更加繁重啦。例如:定義神經(jīng)網(wǎng)絡(luò)模型結(jié)構(gòu)、確認(rèn)損失函數(shù)、確定優(yōu)化器,最后就是反復(fù)調(diào)整模型參數(shù)的過(guò)程。
作者:ZOMI醬? 編輯:黃飛
?
評(píng)論
查看更多