機器學(xué)習的關(guān)鍵點(diǎn)是什么 數據量比算法還重要
機器學(xué)習算法可以通過(guò)概括示例來(lái)確定如何執行重要任務(wù)。手動(dòng)編程很難完成這樣的目標,所以機器學(xué)習通常是可行且成本有效的。隨著(zhù)更多數據的出現,可以解決更加雄心勃勃的問(wèn)題。因此,機器學(xué)習被廣泛應用于計算機真誠等領(lǐng)域。然而,開(kāi)發(fā)成功的機器學(xué)習應用程序需要大量的“黑色藝術(shù)”,這在教科書(shū)中很難找到。
本文引用地址:http://dyxdggzs.com/article/201811/394640.htm1. 學(xué)習=表示+評價(jià)+優(yōu)化
所有的機器學(xué)習的算法通常包括三個(gè)組成部分:
表示:一個(gè)分類(lèi)器必須用計算機能夠處理的一些正式語(yǔ)言來(lái)表示。相反,為學(xué)習者選擇一種表示方式就等同于選擇一組可以學(xué)習的分類(lèi)器。這個(gè)集合被稱(chēng)為學(xué)習者的假設空間。如果一個(gè)分類(lèi)器不在假設空間中,它就不能被學(xué)習。一個(gè)相關(guān)的問(wèn)題是:如何表示輸入,比如使用哪種特征。
評價(jià):要區分好的分類(lèi)器和壞的分類(lèi)器,需要一個(gè)評價(jià)函數。算法內部使用的評估函數與分類(lèi)器外部使用的評價(jià)函數可能不同,其主要是為了便于優(yōu)化,以及下一節中我們要討論的問(wèn)題。
優(yōu)化:最后,我們需要在語(yǔ)言的分類(lèi)器中找到得分最高的一種方法。優(yōu)化技術(shù)的選擇是提高學(xué)習者效率的關(guān)鍵,同時(shí)也有助于確定分類(lèi)器的評價(jià)函數是否具有多個(gè)最優(yōu)值。初學(xué)者開(kāi)始的時(shí)候使用現成的優(yōu)化器是很常見(jiàn)的,不過(guò)這些優(yōu)化器會(huì )被專(zhuān)門(mén)設計的優(yōu)化器取代。

2. “泛化能力”很關(guān)鍵,“測試數據”驗證至關(guān)重要!
機器學(xué)習的主要目標是對訓練集之外的樣本進(jìn)行泛化。因為無(wú)論有多少數據,都不太可能在測試中再次看到完全相同的例子。在訓練集上具有良好表現很容易。機器學(xué)習初學(xué)者最常犯的錯誤是把模型放在訓練數據中進(jìn)行測試,從而產(chǎn)生成功的錯覺(jué)。如果被選擇的分類(lèi)器在新的數據上進(jìn)行測試,一般情況,結果往往和隨機猜測相差無(wú)幾。所以,如果你雇傭他人建立分類(lèi)器,一定要留一些數據給你自己,以便在他們給你的分類(lèi)器中進(jìn)行測試。相反,如果有人雇傭你建立一個(gè)分類(lèi)器,請保留一部分數據對你的分類(lèi)器進(jìn)行最終測試。

3. 僅有數據是不夠的,知識相結合效果更好!
把泛化能力作為目標,會(huì )又另一個(gè)后果:只有數據是不夠的,無(wú)論你擁有多少數據。這是否讓人沮喪。那么,我們怎么能奢求它學(xué)到東西呢?不過(guò),現實(shí)世界中我們想學(xué)習的函數并不都是從數學(xué)上可能的函數中提取出來(lái)的!實(shí)際上,使用一般假設——例如平滑性、相似樣本有相似分類(lèi)、有限的依賴(lài)性或有限復雜度——往往能做得足夠好,這也正是機器學(xué)習能如此成功的大部分原因。正如演繹一樣,歸納(訓練模型所做的)是一個(gè)知識杠桿——它將少量知識輸入轉化為大量知識輸出。歸納是一個(gè)比演繹更為強大的杠桿,僅需更少的知識就能產(chǎn)出有用的結果。不過(guò),它仍然需要大于零的知識輸入才能工作。正如任何一個(gè)杠桿一樣,輸入得越多,得到的也越多。

這樣回想起來(lái),訓練過(guò)程中對知識的需求沒(méi)什么好驚訝的。機器學(xué)習并非魔術(shù),它無(wú)法做到無(wú)中生有,它所做的是舉一反三。如同所有的工程一樣,編程需要做大量的工作:我們必須從頭開(kāi)始構建所有的東西。訓練的過(guò)程更像是耕種,其中大部分工作是自然完成的。農民將種子與營(yíng)養物質(zhì)結合起來(lái),種植作物。訓練模型將知識與數據結合起來(lái),編寫(xiě)程序。
4. “過(guò)擬合”讓機器學(xué)習效果產(chǎn)生錯覺(jué)!
如果我們所擁有的知識和數據不足以完全確定正確的分類(lèi)器,分類(lèi)器(或其中的一部分)就可能產(chǎn)生「錯覺(jué)」。所獲得的分類(lèi)器并不是基于現實(shí),只是對數據的隨機性進(jìn)行編碼。這個(gè)問(wèn)題被稱(chēng)為過(guò)擬合,是機器學(xué)習中棘手的難題。如果你的訓練模型所輸出的分類(lèi)器在訓練數據上準確率是 100%,但在測試數據上準確率只有 50%,那么實(shí)際上,該分類(lèi)器在兩個(gè)集合上的輸出準確率總體可能約為 75%,它發(fā)生了過(guò)擬合現象。
在機器學(xué)習領(lǐng)域,人人都知道過(guò)擬合。但是過(guò)擬合有多種形式,人們往往不能立刻意識到。理解過(guò)擬合的一種方法是將泛化的誤差進(jìn)行分解,分為偏差和方差。偏差是模型不斷學(xué)習相同錯誤的傾向。而方差指的是不管真實(shí)信號如何,模型學(xué)習隨機信號的傾向。線(xiàn)性模型有很高的偏差,因為當兩個(gè)類(lèi)之間的邊界不是一個(gè)超平面時(shí),模型無(wú)法做出調整。決策樹(shù)不存在這個(gè)問(wèn)題,因為它們可以表征任何布爾函數。但是另一方面,決策樹(shù)可能方差很大:如果在不同訓練集上訓練,生成的決策樹(shù)通常差異很大,但事實(shí)上它們應該是相同的。

交叉驗證可以幫助對抗過(guò)擬合,例如,通過(guò)使用交叉驗證來(lái)選擇決策樹(shù)的最佳規模用于訓練。但這不是萬(wàn)能的,因為如果我們用交叉驗證生成太多的參數選擇,它本身就會(huì )開(kāi)始產(chǎn)生過(guò)擬合現象。
除交叉驗證之外,還有很多方法可以解決過(guò)擬合問(wèn)題。最流行的是在評估函數中增加一個(gè)正則化項。舉個(gè)例子,這樣一來(lái)就能懲罰含更多項的分類(lèi)器,從而有利于生成參數結構更簡(jiǎn)單的分類(lèi)器,并減少過(guò)擬合的空間。另一種方法是在添加新的結構之前,進(jìn)行類(lèi)似卡方檢驗的統計顯著(zhù)性檢驗,在添加新結構前后確定類(lèi)的分布是否真的具有差異。當數據非常少時(shí),這些技術(shù)特別有用。盡管如此,你應該對某種方法完美解決了過(guò)擬合問(wèn)題的說(shuō)法持懷疑態(tài)度。減少過(guò)擬合(方差)很容易讓分類(lèi)器陷入與之相對的欠擬合誤差(偏差)中去。如果要同時(shí)避免這兩種情況,需要訓練一個(gè)完美的分類(lèi)器。在沒(méi)有先驗信息的情況下,沒(méi)有任何一種方法總能做到最好(天下沒(méi)有免費的午餐)。
評論