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