摘要:模型評估、模型選擇和算法選擇技術(shù)的正確使用在學(xué)術(shù)性機(jī)器學(xué)習(xí)研究和諸多產(chǎn)業(yè)環(huán)境中異常關(guān)鍵。本文回顧了用于解決以上三項(xiàng)任務(wù)中任何一個(gè)的不同技術(shù),并參考理論和實(shí)證研究討論了每一項(xiàng)技術(shù)的主要優(yōu)勢和劣勢。進(jìn)而,給出建議以促進(jìn)機(jī)器學(xué)習(xí)研究與應(yīng)用方面的最佳實(shí)踐。本文涵蓋了用于模型評估和選擇的常見方法,比如留出方法,但是不推薦用于小數(shù)據(jù)集。不同風(fēng)格的 bootstrap 技術(shù)也被介紹,以評估性能的不確定性,以作為通過正態(tài)空間的置信區(qū)間的替代,如果 bootstrapping 在計(jì)算上是可行的。在討論偏差-方差權(quán)衡時(shí),把 leave-one-out 交叉驗(yàn)證和 k 折交叉驗(yàn)證進(jìn)行對比,并基于實(shí)證證據(jù)給出 k 的最優(yōu)選擇的實(shí)際提示。論文展示了用于算法對比的不同統(tǒng)計(jì)測試,以及處理多種對比的策略(比如綜合測試、多對比糾正)。最后,當(dāng)數(shù)據(jù)集很小時(shí),本文推薦替代方法(比如 5×2cv 交叉驗(yàn)證和嵌套交叉驗(yàn)證)以對比機(jī)器學(xué)習(xí)算法。
1 簡介:基本的模型評估項(xiàng)和技術(shù)
機(jī)器學(xué)習(xí)已經(jīng)成為我們生活的中心,無論是作為消費(fèi)者、客戶、研究者還是從業(yè)人員。無論將預(yù)測建模技術(shù)應(yīng)用到研究還是商業(yè)問題,我認(rèn)為其共同點(diǎn)是:做出足夠好的預(yù)測。用模型擬合訓(xùn)練數(shù)據(jù)是一回事,但我們?nèi)绾瘟私饽P偷姆夯芰??我們?nèi)绾未_定模型是否只是簡單地記憶訓(xùn)練數(shù)據(jù),無法對未見過的樣本做出好的預(yù)測?還有,我們?nèi)绾芜x擇好的模型呢?也許還有更好的算法可以處理眼前的問題呢?
模型評估當(dāng)然不是機(jī)器學(xué)習(xí)工作流程的終點(diǎn)。在處理數(shù)據(jù)之前,我們希望事先計(jì)劃并使用合適的技術(shù)。本文將概述這類技術(shù)和選擇方法,并介紹如何將其應(yīng)用到更大的工程中,即典型的機(jī)器學(xué)習(xí)工作流。
1.1 性能評估:泛化性能 vs. 模型選擇
讓我們考慮這個(gè)問題:「如何評估機(jī)器學(xué)習(xí)模型的性能?」典型的回答可能是:「首先,將訓(xùn)練數(shù)據(jù)饋送給學(xué)習(xí)算法以學(xué)習(xí)一個(gè)模型。第二,預(yù)測測試集的標(biāo)簽。第三,計(jì)算模型對測試集的預(yù)測準(zhǔn)確率?!谷欢?,評估模型性能并非那么簡單。也許我們應(yīng)該從不同的角度解決之前的問題:「為什么我們要關(guān)心性能評估呢?」理論上,模型的性能評估能給出模型的泛化能力,在未見過的數(shù)據(jù)上執(zhí)行預(yù)測是應(yīng)用機(jī)器學(xué)習(xí)或開發(fā)新算法的主要問題。通常,機(jī)器學(xué)習(xí)包含大量實(shí)驗(yàn),例如超參數(shù)調(diào)整。在訓(xùn)練數(shù)據(jù)集上用不同的超參數(shù)設(shè)置運(yùn)行學(xué)習(xí)算法最終會(huì)得到不同的模型。由于我們感興趣的是從該超參數(shù)設(shè)置中選擇最優(yōu)性能的模型,因此我們需要找到評估每個(gè)模型性能的方法,以將它們進(jìn)行排序。
我們需要在微調(diào)算法之外更進(jìn)一步,即不僅僅是在給定的環(huán)境下實(shí)驗(yàn)單個(gè)算法,而是對比不同的算法,通常從預(yù)測性能和計(jì)算性能方面進(jìn)行比較。我們總結(jié)一下評估模型的預(yù)測性能的主要作用:
評估模型的泛化性能,即模型泛化到未見過數(shù)據(jù)的能力;
通過調(diào)整學(xué)習(xí)算法和在給定的假設(shè)空間中選擇性能最優(yōu)的模型,以提升預(yù)測性能;
確定最適用于待解決問題的機(jī)器學(xué)習(xí)算法。因此,我們可以比較不同的算法,選擇其中性能最優(yōu)的模型;或者選擇算法的假設(shè)空間中的性能最優(yōu)模型。
雖然上面列出的三個(gè)子任務(wù)都是為了評估模型的性能,但是它們需要使用的方法是不同的。本文將概述解決這些子任務(wù)需要的不同方法。
我們當(dāng)然希望盡可能精確地預(yù)測模型的泛化性能。然而,本文的一個(gè)要點(diǎn)就是,如果偏差對所有模型的影響是等價(jià)的,那么偏差性能評估基本可以完美地進(jìn)行模型選擇和算法選擇。如果要用排序選擇最優(yōu)的模型或算法,我們只需要知道它們的相對性能就可以了。例如,如果所有的性能評估都是有偏差的,并且低估了它們的性能(10%),這不會(huì)影響最終的排序。更具體地說,如果我們得到如下三個(gè)模型,這些模型的預(yù)測準(zhǔn)確率如下:
M2: 75% > M1: 70% > M3: 65%,
如果我們添加了 10% 的性能偏差(低估),則三種模型的排序沒有發(fā)生改變:
M2: 65% > M1: 60% > M3: 55%.
但是,注意如果最佳模型(M2)的泛化準(zhǔn)確率是 65%,很明顯這個(gè)精度是非常低的。評估模型的絕對性能可能是機(jī)器學(xué)習(xí)中最難的任務(wù)之一。
圖 2:留出驗(yàn)證方法的圖示。
2 Bootstrapping 和不確定性
本章介紹一些用于模型評估的高級技術(shù)。我們首先討論用來評估模型性能不確定性和模型方差、穩(wěn)定性的技術(shù)。之后我們將介紹交叉驗(yàn)證方法用于模型選擇。如第一章所述,關(guān)于我們?yōu)槭裁匆P(guān)心模型評估,存在三個(gè)相關(guān)但不同的任務(wù)或原因。
我們想評估泛化準(zhǔn)確度,即模型在未見數(shù)據(jù)上的預(yù)測性能。
我們想通過調(diào)整學(xué)習(xí)算法、從給定假設(shè)空間中選擇性能最好的模型,來改善預(yù)測性能。
我們想確定手頭最適合待解決問題的機(jī)器學(xué)習(xí)算法。因此,我們想對比不同的算法,選出性能最好的一個(gè);或從算法的假設(shè)空間中選出性能最好的模型。
圖 3:偏差和方差的不同組合的圖示。
圖 4:在 MNIST 數(shù)據(jù)集上 softmax 分類器的學(xué)習(xí)曲線。
圖 5:二維高斯分布中的重復(fù)子采樣。
3 交叉驗(yàn)證和超參數(shù)優(yōu)化
幾乎所有機(jī)器學(xué)習(xí)算法都需要我們機(jī)器學(xué)習(xí)研究者和從業(yè)者指定大量設(shè)置。這些超參數(shù)幫助我們控制機(jī)器學(xué)習(xí)算法在優(yōu)化性能、找出偏差方差最佳平衡時(shí)的行為。用于性能優(yōu)化的超參數(shù)調(diào)整本身就是一門藝術(shù),沒有固定規(guī)則可以保證在給定數(shù)據(jù)集上的性能最優(yōu)。前面的章節(jié)提到了用于評估模型泛化性能的留出技術(shù)和 bootstrap 技術(shù)。偏差-方差權(quán)衡和計(jì)算性能估計(jì)的不穩(wěn)定性方法都得到了介紹。本章主要介紹用于模型評估和選擇的不同交叉驗(yàn)證方法,包括對不同超參數(shù)配置的模型進(jìn)行排序和評估其泛化至獨(dú)立數(shù)據(jù)集的性能。
本章生成圖像的代碼詳見:https://github.com/rasbt/model-eval-article-supplementary/blob/master/code/resampling-and-kfold.ipynb。
圖 11:logistic 回歸的概念圖示。
我們可以把超參數(shù)調(diào)整(又稱超參數(shù)優(yōu)化)和模型選擇的過程看作元優(yōu)化任務(wù)。當(dāng)學(xué)習(xí)算法在訓(xùn)練集上優(yōu)化目標(biāo)函數(shù)時(shí)(懶惰學(xué)習(xí)器是例外),超參數(shù)優(yōu)化是基于它的另一項(xiàng)任務(wù)。這里,我們通常想優(yōu)化性能指標(biāo),如分類準(zhǔn)確度或接受者操作特征曲線(ROC 曲線)下面積。超參數(shù)調(diào)整階段之后,基于測試集性能選擇模型似乎是一種合理的方法。但是,多次重復(fù)使用測試集可能會(huì)帶來偏差和最終性能估計(jì),且可能導(dǎo)致對泛化性能的預(yù)期過分樂觀,可以說是「測試集泄露信息」。為了避免這個(gè)問題,我們可以使用三次分割(three-way split),將數(shù)據(jù)集分割成訓(xùn)練集、驗(yàn)證集和測試集。對超參數(shù)調(diào)整和模型選擇進(jìn)行訓(xùn)練-驗(yàn)證可以保證測試集「獨(dú)立」于模型選擇。這里,我們再回顧一下性能估計(jì)的「3 個(gè)目標(biāo)」:
我們想評估泛化準(zhǔn)確度,即模型在未見數(shù)據(jù)上的預(yù)測性能。
我們想通過調(diào)整學(xué)習(xí)算法、從給定假設(shè)空間中選擇性能最好的模型,來改善預(yù)測性能。
我們想確定最適合待解決問題的機(jī)器學(xué)習(xí)算法。因此,我們想對比不同的算法,選出性能最好的一個(gè),從算法的假設(shè)空間中選出性能最好的模型。
圖 12:超參數(shù)調(diào)整中三路留出方法(three-way holdout method)圖示。
圖 13:k 折交叉驗(yàn)證步驟圖示。
圖 16:模型選擇中 k 折交叉驗(yàn)證的圖示。
-
模型
+關(guān)注
關(guān)注
1文章
3226瀏覽量
48806 -
機(jī)器學(xué)習(xí)
+關(guān)注
關(guān)注
66文章
8406瀏覽量
132558 -
數(shù)據(jù)集
+關(guān)注
關(guān)注
4文章
1208瀏覽量
24689
原文標(biāo)題:模型評價(jià)、模型選擇、算法選擇
文章出處:【微信號:zenRRan,微信公眾號:深度學(xué)習(xí)自然語言處理】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
評論