什么是机器学习?有哪些应用?终于有人讲明白了
導(dǎo)讀:人工智能的快速發(fā)展,帶動(dòng)了相關(guān)技術(shù)的繁榮。近些年,國(guó)內(nèi)外的科技公司對(duì)機(jī)器學(xué)習(xí)人才都有大量需求。怎樣入行機(jī)器學(xué)習(xí)?本文帶你從0開始學(xué)起。
作者:星環(huán)科技人工智能平臺(tái)團(tuán)隊(duì)
來源:大數(shù)據(jù)DT(ID:hzdashuju)
01 機(jī)器學(xué)習(xí)的背景
當(dāng)提及機(jī)器學(xué)習(xí)時(shí),我們的腦海里一般會(huì)浮現(xiàn)出這樣一幅畫面:
一個(gè)擁有類似人類智能的機(jī)器人正在像人類一樣嘗試?yán)斫庖患虑椤?/p>
這樣的畫面讓人覺得是遙不可及的科幻世界。但實(shí)際上,機(jī)器學(xué)習(xí)與人類的生產(chǎn)生活已經(jīng)密不可分了。早在20世紀(jì)90年代,一個(gè)非常成功的機(jī)器學(xué)習(xí)案例已經(jīng)使數(shù)億人受益:今天為人所熟知的垃圾信息過濾。該案例成功后,出現(xiàn)了諸多效仿者,并且在現(xiàn)代社會(huì)已經(jīng)有十分廣泛的應(yīng)用。
商家在推薦系統(tǒng)與廣告計(jì)算方面使用機(jī)器學(xué)習(xí),前者會(huì)在海量的商品中恰如其分地選中你所喜歡的一款,讓你欣然完成交易,而后者因其精確的廣告點(diǎn)擊率計(jì)算,為企業(yè)創(chuàng)造了顯著的收益;
在金融領(lǐng)域,機(jī)器學(xué)習(xí)參與了反欺詐、反洗錢風(fēng)控等常人難以勝任的工作,其在時(shí)間序列預(yù)測(cè)方面也有自己的一席之地;
智能問答機(jī)器人以及電話接線員已經(jīng)大幅減少了企業(yè)用人成本;
在制造業(yè)中,如何精益化生產(chǎn)、如何輕而易舉地發(fā)現(xiàn)殘次品等,皆有其用武之地。我們已深處于一個(gè)無時(shí)無刻不接觸機(jī)器學(xué)習(xí)的時(shí)代。
02 機(jī)器學(xué)習(xí)的定義
如果從更精細(xì)的角度去描述機(jī)器學(xué)習(xí),那么首先要給出機(jī)器學(xué)習(xí)歷史上兩個(gè)著名的定義。機(jī)器學(xué)習(xí)(machine learning)一般被定義為一個(gè)系統(tǒng)自我改進(jìn)的過程。從字面意義上說,機(jī)器指計(jì)算機(jī),學(xué)習(xí)是這個(gè)自我改進(jìn)的過程。最初機(jī)器學(xué)習(xí)這個(gè)名字由Arthur Samuel提出,他給了機(jī)器學(xué)習(xí)一個(gè)非正式的定義。
Arthur Samuel的機(jī)器學(xué)習(xí)定義
機(jī)器學(xué)習(xí)是一個(gè)這樣的領(lǐng)域:計(jì)算機(jī)在程序員并不對(duì)其進(jìn)行顯式編程的情況下進(jìn)行自我學(xué)習(xí)的能力。
具體來講,機(jī)器學(xué)習(xí)是一門針對(duì)算法與統(tǒng)計(jì)模型的學(xué)科,主要是利用計(jì)算機(jī)系統(tǒng)高效地執(zhí)行特殊任務(wù),該任務(wù)沒有顯式的指令,而是依靠模型和推斷等。
機(jī)器學(xué)習(xí)算法會(huì)建立一個(gè)關(guān)于樣本數(shù)據(jù)的數(shù)學(xué)模型,這些樣本數(shù)據(jù)通常被稱為“訓(xùn)練集”(training data)。這樣做的目的是在執(zhí)行任務(wù)時(shí)不去進(jìn)行顯式的預(yù)測(cè)或決策,這同時(shí)也表明了機(jī)器學(xué)習(xí)不是一個(gè)已確定好的規(guī)則和流程。
機(jī)器學(xué)習(xí)算法可以被用于郵件過濾、網(wǎng)絡(luò)入侵檢測(cè)以及計(jì)算機(jī)視覺等。機(jī)器學(xué)習(xí)與利用計(jì)算機(jī)進(jìn)行預(yù)測(cè)的計(jì)算數(shù)學(xué)比較接近。
上面的定義稍有一些佶屈聱牙,但大體上是說:“機(jī)器是怎么判斷的”這一點(diǎn)不是由人顯式定義的,而是計(jì)算機(jī)自己獲得的。這里有一個(gè)更加工程化的定義,即Tom M.Mitchell為機(jī)器學(xué)習(xí)領(lǐng)域研究的算法特征提出的一個(gè)廣為引用且更加正式的定義。
Tom M.Mitchell的機(jī)器學(xué)習(xí)定義
機(jī)器學(xué)習(xí)這門學(xué)科所關(guān)注的問題是:計(jì)算機(jī)程序如何隨著經(jīng)驗(yàn)積累自動(dòng)提高性能;如果針對(duì)某類任務(wù)T,一個(gè)計(jì)算機(jī)程序的用P衡量的性能可根據(jù)經(jīng)驗(yàn)E來自我完善,那么我們稱這個(gè)計(jì)算機(jī)程序在從經(jīng)驗(yàn)E中學(xué)習(xí),針對(duì)某類任務(wù)T,它的性能可用P來衡量。
《統(tǒng)計(jì)學(xué)習(xí)基礎(chǔ)》一書中寫道:許多領(lǐng)域都產(chǎn)生了大量的數(shù)據(jù),統(tǒng)計(jì)學(xué)家的工作就是讓所有這些數(shù)據(jù)變得有意義——提取重要的模式和趨勢(shì),理解“數(shù)據(jù)在說什么”。我們稱之為從數(shù)據(jù)中學(xué)習(xí)。
綜上所述,機(jī)器學(xué)習(xí)模仿人類學(xué)習(xí)的過程,不能對(duì)機(jī)器置入顯式的判斷規(guī)則,而是由機(jī)器在某種任務(wù)場(chǎng)景(基于某種經(jīng)驗(yàn))和某種評(píng)判標(biāo)準(zhǔn)下不斷提升自己表現(xiàn)的過程。
舉個(gè)例子,當(dāng)你使用電子郵箱時(shí),你的垃圾郵件過濾系統(tǒng)可以預(yù)先從帶有人為標(biāo)記的垃圾郵件以及帶有人為標(biāo)記的正常郵件中學(xué)習(xí)到垃圾郵件到底會(huì)有怎樣的特征表現(xiàn)。這些用以訓(xùn)練系統(tǒng)的數(shù)據(jù)集被稱為訓(xùn)練集,其中每一個(gè)樣本被稱作訓(xùn)練樣本。
在這個(gè)案例中,任務(wù)T是對(duì)新來的郵件打上好或者不好的標(biāo)簽;經(jīng)驗(yàn)E是上述訓(xùn)練集;而性能P需要被定義,例如你可以用預(yù)測(cè)的正確比例去定義模型表現(xiàn)的好壞,該指標(biāo)被稱作準(zhǔn)確率(accuracy)且廣泛應(yīng)用于機(jī)器學(xué)習(xí)的分類任務(wù)中。
03 機(jī)器學(xué)習(xí)的任務(wù)類型
如上所述,機(jī)器學(xué)習(xí)要應(yīng)對(duì)很多應(yīng)用場(chǎng)景,并包含面對(duì)各種數(shù)據(jù)的經(jīng)驗(yàn),而機(jī)器學(xué)習(xí)系統(tǒng)也包含不同的類型,所以我們有必要在不同層面上對(duì)它們進(jìn)行較為粗略的區(qū)分,這些“不同層面”可以是:
是否在人類的監(jiān)督下進(jìn)行學(xué)習(xí);
是否增量學(xué)習(xí)或者在數(shù)據(jù)流上學(xué)習(xí);
是否僅僅將新數(shù)據(jù)點(diǎn)與老數(shù)據(jù)點(diǎn)進(jìn)行比較,抑或建立一個(gè)預(yù)測(cè)模型,類似于科學(xué)家通常所做的(基于數(shù)據(jù)或基于模型)。
這三個(gè)層面并不會(huì)互相排斥,相反,一個(gè)機(jī)器學(xué)習(xí)任務(wù)往往是這三種區(qū)分的組合。例如,一個(gè)先進(jìn)的深度學(xué)習(xí)系統(tǒng)在一個(gè)實(shí)時(shí)數(shù)據(jù)流上學(xué)習(xí)如何區(qū)分垃圾郵件,這顯然是一個(gè)基于模型的在線監(jiān)督學(xué)習(xí)系統(tǒng)。
根據(jù)是否在人類的監(jiān)督下進(jìn)行學(xué)習(xí)這個(gè)問題,機(jī)器學(xué)習(xí)任務(wù)區(qū)分如下:
監(jiān)督學(xué)習(xí):監(jiān)督學(xué)習(xí)算法依賴具有標(biāo)簽的訓(xùn)練數(shù)據(jù)來建立數(shù)學(xué)模型。例如,如果任務(wù)是鑒定圖片是否包含某種實(shí)體,那么訓(xùn)練集的圖片中就應(yīng)該同時(shí)存在包含與不包含該實(shí)體的圖片,同時(shí),每張圖片需標(biāo)注是否包含該實(shí)體的標(biāo)簽。根據(jù)標(biāo)簽的數(shù)值特征(連續(xù)、離散),監(jiān)督學(xué)習(xí)又可以分為分類問題與回歸問題。
半監(jiān)督學(xué)習(xí):在某些情況下,并不是所有的輸入數(shù)據(jù)集都被有效標(biāo)注了,即訓(xùn)練集中包含已標(biāo)注的樣本和未標(biāo)注的樣本。實(shí)際上未標(biāo)注樣本與已標(biāo)注樣本擁有同樣的分布,在訓(xùn)練時(shí)若能利用這一點(diǎn),則會(huì)很有幫助。
無監(jiān)督學(xué)習(xí):無監(jiān)督學(xué)習(xí)算法完全利用不帶標(biāo)簽的訓(xùn)練數(shù)據(jù)去訓(xùn)練一個(gè)模型。無監(jiān)督學(xué)習(xí)用于探索數(shù)據(jù)的分布,例如將點(diǎn)聚類等。無監(jiān)督學(xué)習(xí)可用于發(fā)現(xiàn)數(shù)據(jù)的潛在模式,并將數(shù)據(jù)按組歸類,還可用于特征學(xué)習(xí)和數(shù)據(jù)降維等。
強(qiáng)化學(xué)習(xí):在動(dòng)態(tài)環(huán)境中以正或負(fù)強(qiáng)化的形式給出反饋,并用于自動(dòng)駕駛車輛,或者學(xué)習(xí)與人類對(duì)手玩游戲等。
主動(dòng)學(xué)習(xí):在預(yù)算訪問有限等情況下,算法通過交互式的形式來詢問用戶和其他信息源,以更新和預(yù)測(cè)新的數(shù)據(jù)點(diǎn)所期望的輸出。
元學(xué)習(xí):元學(xué)習(xí)是要“學(xué)會(huì)如何學(xué)習(xí)”,即利用以往的知識(shí)經(jīng)驗(yàn)來指導(dǎo)新任務(wù)的學(xué)習(xí)。
相應(yīng)地,根據(jù)是否在實(shí)時(shí)數(shù)據(jù)流上學(xué)習(xí)這個(gè)問題,機(jī)器學(xué)習(xí)任務(wù)區(qū)分如下:
離線學(xué)習(xí):在離線學(xué)習(xí)中,系統(tǒng)不能在增量的數(shù)據(jù)上進(jìn)行學(xué)習(xí),只能在更新的全部數(shù)據(jù)集上重新學(xué)習(xí),這必然會(huì)增加更多的時(shí)間成本和計(jì)算資源。一旦模型完成學(xué)習(xí)便應(yīng)立即部署到系統(tǒng)中運(yùn)行,且不再繼續(xù)學(xué)習(xí)。如果用戶想對(duì)新來的數(shù)據(jù)進(jìn)行學(xué)習(xí),那么必須將新數(shù)據(jù)和舊數(shù)據(jù)組合,重新訓(xùn)練模型,停止舊系統(tǒng)并將其替換成新系統(tǒng)。
在線學(xué)習(xí):在線學(xué)習(xí)中,用戶可以增量地訓(xùn)練模型,將數(shù)據(jù)一次一次地喂入模型,每一次獨(dú)立的數(shù)據(jù)組被稱作mini-batch,每一次新的學(xué)習(xí)都快速而輕便。
在是否對(duì)比舊數(shù)據(jù)點(diǎn)上,機(jī)器學(xué)習(xí)任務(wù)區(qū)分如下:
基于樣本的學(xué)習(xí)
基于模型的學(xué)習(xí)
04 構(gòu)建機(jī)器學(xué)習(xí)應(yīng)用的步驟
機(jī)器學(xué)習(xí)有很多任務(wù)場(chǎng)景,為了簡(jiǎn)要說明機(jī)器學(xué)習(xí)的大體應(yīng)用方法與步驟,這里以較為常見的手寫識(shí)別任務(wù)為例。
根據(jù)Tom M.Mitchell對(duì)機(jī)器學(xué)習(xí)的定義,手寫識(shí)別任務(wù)的T、P、E分別為:
任務(wù)T:訓(xùn)練出高準(zhǔn)確率的手寫識(shí)別模型;
性能P:分類的準(zhǔn)確率、召回率等;
訓(xùn)練經(jīng)驗(yàn)E:帶標(biāo)簽的手寫圖片。
首先介紹一系列關(guān)鍵概念。
特征:特征是事物某些突出性質(zhì)的表現(xiàn),即區(qū)分事物的關(guān)鍵,當(dāng)需要對(duì)事物進(jìn)行分類或者識(shí)別時(shí),我們會(huì)根據(jù)事物的特征去區(qū)分,并依次建立一個(gè)模型。對(duì)于單個(gè)事物而言,可能有多個(gè)特征存在。而對(duì)于一組事物,某個(gè)特征項(xiàng)會(huì)有不同取值分布。
標(biāo)簽:對(duì)于特征而言,標(biāo)簽表示這個(gè)事物是什么,例如通過某個(gè)人的言行舉止、穿著打扮可以大體判定其具有某種性格或者某種社會(huì)地位。這種性格或者社會(huì)地位就是標(biāo)簽。機(jī)器學(xué)習(xí)的任務(wù)就是針對(duì)新輸入的數(shù)據(jù),根據(jù)其特征來確定其標(biāo)簽。
數(shù)據(jù)切分:機(jī)器學(xué)習(xí)有訓(xùn)練的過程,在這個(gè)過程中應(yīng)用了訓(xùn)練經(jīng)驗(yàn)E,而訓(xùn)練經(jīng)驗(yàn)E則來源于原始數(shù)據(jù)。一般來說,原始數(shù)據(jù)分為三個(gè)部分,即訓(xùn)練集、驗(yàn)證集和測(cè)試集,其分配比例分別為70%、20%和10%。
訓(xùn)練集用以訓(xùn)練模型,驗(yàn)證集用以調(diào)優(yōu)模型參數(shù),而在經(jīng)過訓(xùn)練集和驗(yàn)證集的訓(xùn)練之后,開發(fā)者獲得了一系列模型,此時(shí)測(cè)試集用以選擇模型。在數(shù)據(jù)切分時(shí),一定要注意抽樣方法的選擇,務(wù)必保證三個(gè)數(shù)據(jù)集的數(shù)據(jù)分布大體一致。
交叉驗(yàn)證與網(wǎng)格調(diào)參:大多數(shù)時(shí)候,應(yīng)考慮數(shù)據(jù)切分產(chǎn)生的數(shù)據(jù)分布不均的影響。在訓(xùn)練模型時(shí)往往用交叉驗(yàn)證的方式,同時(shí)會(huì)使用網(wǎng)格調(diào)參去尋找最優(yōu)參數(shù)。
交叉驗(yàn)證指將數(shù)據(jù)分為K份,進(jìn)行K次訓(xùn)練,每次訓(xùn)練抽取其中的K-1份數(shù)據(jù)作為訓(xùn)練集,其余一份作為驗(yàn)證集,訓(xùn)練時(shí)通常使用網(wǎng)格調(diào)參,于是便可以得到K個(gè)模型。在K個(gè)模型中,選擇在驗(yàn)證集上表現(xiàn)最佳的一個(gè)模型即可。
網(wǎng)格調(diào)參是指對(duì)于需要調(diào)整的參數(shù),每個(gè)參數(shù)設(shè)置一組預(yù)設(shè)值。每組預(yù)設(shè)值根據(jù)不同的取值組合成繁多的取值組合。如同設(shè)置一個(gè)高維的網(wǎng)絡(luò),每個(gè)組合都是其中的一個(gè)交叉點(diǎn),在每個(gè)組合數(shù)據(jù)上驗(yàn)證模型的性能,并獲得最佳的組合。
模型評(píng)價(jià):簡(jiǎn)而言之就是評(píng)價(jià)模型的性能,如前所述,需要通過模型評(píng)價(jià)選擇出最優(yōu)秀的模型。對(duì)于分類和回歸問題來說,存在不同的模型評(píng)價(jià)指標(biāo)。
那么對(duì)于一個(gè)手寫識(shí)別任務(wù)來說,機(jī)器學(xué)習(xí)的應(yīng)用步驟如下所述:
數(shù)據(jù)預(yù)處理:手寫數(shù)據(jù)的圖片就是其數(shù)據(jù)特征,0,…,9的數(shù)字為其標(biāo)簽。首先需要將圖片轉(zhuǎn)換為數(shù)值特征,此步驟稱為數(shù)據(jù)預(yù)處理。手寫識(shí)別圖片為灰度圖且只有一個(gè)通道,那么每張圖片就可以抽選特征成為一個(gè)數(shù)組,例如將圖片轉(zhuǎn)換為180×180維的由[0,1]組成的一組數(shù)據(jù),然后再讓模型去學(xué)習(xí)。
數(shù)據(jù)切分:將數(shù)據(jù)按照7/2/1的比例切分成訓(xùn)練集、驗(yàn)證集和測(cè)試集。此處需要注意的是,為了不讓數(shù)據(jù)的分布產(chǎn)生差別,三個(gè)數(shù)據(jù)集中的每一個(gè)都包含所有的標(biāo)簽類別,需要采用分層抽樣技術(shù)。
選擇模型(一組泛函):對(duì)于分類來說,有很多模型類型可以使用。每種模型代表一組泛函,學(xué)習(xí)的目的就是搜索泛函中性能優(yōu)異的函數(shù)。針對(duì)分類問題,可用的函數(shù)族有很多,例如邏輯回歸、決策樹、支持向量機(jī)以及神經(jīng)網(wǎng)絡(luò)等。
選擇目標(biāo)函數(shù):根據(jù)所選模型的不同,應(yīng)選擇相應(yīng)的目標(biāo)函數(shù)以及優(yōu)化方法。合適的目標(biāo)函數(shù)與優(yōu)化方法搜索出的模型參數(shù)可以使模型達(dá)到最優(yōu)的性能。例如,對(duì)于邏輯回歸,可用的目標(biāo)函數(shù)為交叉熵;對(duì)于決策樹,在分裂時(shí)目標(biāo)函數(shù)為熵或者基尼系數(shù);而對(duì)于AdaBoost模型,則選取對(duì)數(shù)損失函數(shù)。
根據(jù)目標(biāo)函數(shù)選擇相應(yīng)的優(yōu)化方法:最常用的優(yōu)化方法是梯度下降法、牛頓法等。需要目標(biāo)函數(shù)有較好的性質(zhì)才能找到其最優(yōu)解。
根據(jù)評(píng)價(jià)函數(shù)計(jì)算性能,并優(yōu)化模型參數(shù):通過選取合適的模型-目標(biāo)函數(shù)-優(yōu)化方法,模型在這個(gè)流程中學(xué)習(xí)到了參數(shù)。此時(shí),模型已經(jīng)可以執(zhí)行預(yù)測(cè)工作。
了解模型性能:對(duì)于分類問題有很多模型評(píng)價(jià)指標(biāo),例如查準(zhǔn)率、查全率、F1值、AUC值、PR曲線等。若計(jì)算得出的模型性能并非十分優(yōu)秀,那么就要重新進(jìn)行參數(shù)搜索。
最終獲得模型。
這里提供了一張Checklist(檢查表)。
宏觀審視問題,問題的轉(zhuǎn)化(有監(jiān)督、無監(jiān)督或者分類回歸);
獲取數(shù)據(jù);
探索數(shù)據(jù);
發(fā)現(xiàn)數(shù)據(jù)的潛在規(guī)律模式,為開始訓(xùn)練模型做好準(zhǔn)備;
訓(xùn)練盡可能多的模型并列舉出性能最好的幾個(gè);
調(diào)優(yōu)模型并將模型融合;
預(yù)測(cè)并展示結(jié)果;
部署、監(jiān)測(cè)并維護(hù)系統(tǒng)。
關(guān)于作者:星環(huán)科技人工智能平臺(tái)團(tuán)隊(duì)由五十多位優(yōu)秀的研發(fā)工程師和算法工程師組成,逾八成具有國(guó)內(nèi)外名校碩士及以上學(xué)歷。其中研發(fā)子團(tuán)隊(duì)的工作重心為一站式人工智能建模平臺(tái)Sophon;算法子團(tuán)隊(duì)則負(fù)責(zé)基礎(chǔ)算法的研發(fā)及改進(jìn),并在數(shù)據(jù)挖掘、傳統(tǒng)機(jī)器學(xué)習(xí)、計(jì)算機(jī)視覺、自然語(yǔ)言處理、知識(shí)圖譜等領(lǐng)域進(jìn)行前瞻性研究以及項(xiàng)目實(shí)施落地。
本文摘編自《機(jī)器學(xué)習(xí)實(shí)戰(zhàn):基于Sophon平臺(tái)的機(jī)器學(xué)習(xí)理論與實(shí)踐》,經(jīng)出版方授權(quán)發(fā)布。
延伸閱讀《機(jī)器學(xué)習(xí)實(shí)戰(zhàn)》
點(diǎn)擊上圖了解及購(gòu)買
轉(zhuǎn)載請(qǐng)聯(lián)系微信:DoctorData
推薦語(yǔ):星環(huán)科技人工智能平臺(tái)團(tuán)隊(duì)實(shí)戰(zhàn)總結(jié),機(jī)器學(xué)習(xí)的實(shí)戰(zhàn)書籍,既能了解人工智能相關(guān)的算法原理,也能結(jié)合可落地的具體應(yīng)用場(chǎng)景進(jìn)行實(shí)戰(zhàn)。
有話要說????
Q:?你對(duì)機(jī)器學(xué)習(xí)的哪個(gè)應(yīng)用領(lǐng)域最感興趣?
歡迎留言與大家分享
猜你想看????
入門大爆炸式發(fā)展的深度學(xué)習(xí),你先要了解這4個(gè)最流行框架
從治療癌癥到預(yù)測(cè)犯罪,細(xì)數(shù)數(shù)據(jù)科學(xué)在各領(lǐng)域的神奇應(yīng)用
什么是氣泡圖?怎樣用Python繪制?有什么用?終于有人講明白了
50年后的地球什么樣?大數(shù)據(jù)、AI、量子計(jì)算的書單給你答案
據(jù)統(tǒng)計(jì),99%的大咖都完成了這個(gè)神操作
????
點(diǎn)擊閱讀原文,了解更多
總結(jié)
以上是生活随笔為你收集整理的什么是机器学习?有哪些应用?终于有人讲明白了的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 多图详解边缘计算系统的组成及概念
- 下一篇: 手把手教你用ECharts画折线图