機(jī)器學(xué)習(xí)的關(guān)鍵點(diǎn)是什么 數(shù)據(jù)量比算法還重要
機(jī)器學(xué)習(xí)算法可以通過概括示例來確定如何執(zhí)行重要任務(wù)。手動(dòng)編程很難完成這樣的目標(biāo),所以機(jī)器學(xué)習(xí)通常是可行且成本有效的。隨著更多數(shù)據(jù)的出現(xiàn),可以解決更加雄心勃勃的問題。因此,機(jī)器學(xué)習(xí)被廣泛應(yīng)用于計(jì)算機(jī)真誠(chéng)等領(lǐng)域。然而,開發(fā)成功的機(jī)器學(xué)習(xí)應(yīng)用程序需要大量的“黑色藝術(shù)”,這在教科書中很難找到。
本文引用地址:http://www.biyoush.com/article/201811/394640.htm1. 學(xué)習(xí)=表示+評(píng)價(jià)+優(yōu)化
所有的機(jī)器學(xué)習(xí)的算法通常包括三個(gè)組成部分:
表示:一個(gè)分類器必須用計(jì)算機(jī)能夠處理的一些正式語言來表示。相反,為學(xué)習(xí)者選擇一種表示方式就等同于選擇一組可以學(xué)習(xí)的分類器。這個(gè)集合被稱為學(xué)習(xí)者的假設(shè)空間。如果一個(gè)分類器不在假設(shè)空間中,它就不能被學(xué)習(xí)。一個(gè)相關(guān)的問題是:如何表示輸入,比如使用哪種特征。
評(píng)價(jià):要區(qū)分好的分類器和壞的分類器,需要一個(gè)評(píng)價(jià)函數(shù)。算法內(nèi)部使用的評(píng)估函數(shù)與分類器外部使用的評(píng)價(jià)函數(shù)可能不同,其主要是為了便于優(yōu)化,以及下一節(jié)中我們要討論的問題。
優(yōu)化:最后,我們需要在語言的分類器中找到得分最高的一種方法。優(yōu)化技術(shù)的選擇是提高學(xué)習(xí)者效率的關(guān)鍵,同時(shí)也有助于確定分類器的評(píng)價(jià)函數(shù)是否具有多個(gè)最優(yōu)值。初學(xué)者開始的時(shí)候使用現(xiàn)成的優(yōu)化器是很常見的,不過這些優(yōu)化器會(huì)被專門設(shè)計(jì)的優(yōu)化器取代。
2. “泛化能力”很關(guān)鍵,“測(cè)試數(shù)據(jù)”驗(yàn)證至關(guān)重要!
機(jī)器學(xué)習(xí)的主要目標(biāo)是對(duì)訓(xùn)練集之外的樣本進(jìn)行泛化。因?yàn)闊o論有多少數(shù)據(jù),都不太可能在測(cè)試中再次看到完全相同的例子。在訓(xùn)練集上具有良好表現(xiàn)很容易。機(jī)器學(xué)習(xí)初學(xué)者最常犯的錯(cuò)誤是把模型放在訓(xùn)練數(shù)據(jù)中進(jìn)行測(cè)試,從而產(chǎn)生成功的錯(cuò)覺。如果被選擇的分類器在新的數(shù)據(jù)上進(jìn)行測(cè)試,一般情況,結(jié)果往往和隨機(jī)猜測(cè)相差無幾。所以,如果你雇傭他人建立分類器,一定要留一些數(shù)據(jù)給你自己,以便在他們給你的分類器中進(jìn)行測(cè)試。相反,如果有人雇傭你建立一個(gè)分類器,請(qǐng)保留一部分?jǐn)?shù)據(jù)對(duì)你的分類器進(jìn)行最終測(cè)試。
3. 僅有數(shù)據(jù)是不夠的,知識(shí)相結(jié)合效果更好!
把泛化能力作為目標(biāo),會(huì)又另一個(gè)后果:只有數(shù)據(jù)是不夠的,無論你擁有多少數(shù)據(jù)。這是否讓人沮喪。那么,我們?cè)趺茨苌萸笏鼘W(xué)到東西呢?不過,現(xiàn)實(shí)世界中我們想學(xué)習(xí)的函數(shù)并不都是從數(shù)學(xué)上可能的函數(shù)中提取出來的!實(shí)際上,使用一般假設(shè)——例如平滑性、相似樣本有相似分類、有限的依賴性或有限復(fù)雜度——往往能做得足夠好,這也正是機(jī)器學(xué)習(xí)能如此成功的大部分原因。正如演繹一樣,歸納(訓(xùn)練模型所做的)是一個(gè)知識(shí)杠桿——它將少量知識(shí)輸入轉(zhuǎn)化為大量知識(shí)輸出。歸納是一個(gè)比演繹更為強(qiáng)大的杠桿,僅需更少的知識(shí)就能產(chǎn)出有用的結(jié)果。不過,它仍然需要大于零的知識(shí)輸入才能工作。正如任何一個(gè)杠桿一樣,輸入得越多,得到的也越多。
這樣回想起來,訓(xùn)練過程中對(duì)知識(shí)的需求沒什么好驚訝的。機(jī)器學(xué)習(xí)并非魔術(shù),它無法做到無中生有,它所做的是舉一反三。如同所有的工程一樣,編程需要做大量的工作:我們必須從頭開始構(gòu)建所有的東西。訓(xùn)練的過程更像是耕種,其中大部分工作是自然完成的。農(nóng)民將種子與營(yíng)養(yǎng)物質(zhì)結(jié)合起來,種植作物。訓(xùn)練模型將知識(shí)與數(shù)據(jù)結(jié)合起來,編寫程序。
4. “過擬合”讓機(jī)器學(xué)習(xí)效果產(chǎn)生錯(cuò)覺!
如果我們所擁有的知識(shí)和數(shù)據(jù)不足以完全確定正確的分類器,分類器(或其中的一部分)就可能產(chǎn)生「錯(cuò)覺」。所獲得的分類器并不是基于現(xiàn)實(shí),只是對(duì)數(shù)據(jù)的隨機(jī)性進(jìn)行編碼。這個(gè)問題被稱為過擬合,是機(jī)器學(xué)習(xí)中棘手的難題。如果你的訓(xùn)練模型所輸出的分類器在訓(xùn)練數(shù)據(jù)上準(zhǔn)確率是 100%,但在測(cè)試數(shù)據(jù)上準(zhǔn)確率只有 50%,那么實(shí)際上,該分類器在兩個(gè)集合上的輸出準(zhǔn)確率總體可能約為 75%,它發(fā)生了過擬合現(xiàn)象。
在機(jī)器學(xué)習(xí)領(lǐng)域,人人都知道過擬合。但是過擬合有多種形式,人們往往不能立刻意識(shí)到。理解過擬合的一種方法是將泛化的誤差進(jìn)行分解,分為偏差和方差。偏差是模型不斷學(xué)習(xí)相同錯(cuò)誤的傾向。而方差指的是不管真實(shí)信號(hào)如何,模型學(xué)習(xí)隨機(jī)信號(hào)的傾向。線性模型有很高的偏差,因?yàn)楫?dāng)兩個(gè)類之間的邊界不是一個(gè)超平面時(shí),模型無法做出調(diào)整。決策樹不存在這個(gè)問題,因?yàn)樗鼈兛梢员碚魅魏尾紶柡瘮?shù)。但是另一方面,決策樹可能方差很大:如果在不同訓(xùn)練集上訓(xùn)練,生成的決策樹通常差異很大,但事實(shí)上它們應(yīng)該是相同的。
交叉驗(yàn)證可以幫助對(duì)抗過擬合,例如,通過使用交叉驗(yàn)證來選擇決策樹的最佳規(guī)模用于訓(xùn)練。但這不是萬能的,因?yàn)槿绻覀冇媒徊骝?yàn)證生成太多的參數(shù)選擇,它本身就會(huì)開始產(chǎn)生過擬合現(xiàn)象。
除交叉驗(yàn)證之外,還有很多方法可以解決過擬合問題。最流行的是在評(píng)估函數(shù)中增加一個(gè)正則化項(xiàng)。舉個(gè)例子,這樣一來就能懲罰含更多項(xiàng)的分類器,從而有利于生成參數(shù)結(jié)構(gòu)更簡(jiǎn)單的分類器,并減少過擬合的空間。另一種方法是在添加新的結(jié)構(gòu)之前,進(jìn)行類似卡方檢驗(yàn)的統(tǒng)計(jì)顯著性檢驗(yàn),在添加新結(jié)構(gòu)前后確定類的分布是否真的具有差異。當(dāng)數(shù)據(jù)非常少時(shí),這些技術(shù)特別有用。盡管如此,你應(yīng)該對(duì)某種方法完美解決了過擬合問題的說法持懷疑態(tài)度。減少過擬合(方差)很容易讓分類器陷入與之相對(duì)的欠擬合誤差(偏差)中去。如果要同時(shí)避免這兩種情況,需要訓(xùn)練一個(gè)完美的分類器。在沒有先驗(yàn)信息的情況下,沒有任何一種方法總能做到最好(天下沒有免費(fèi)的午餐)。
評(píng)論