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