丁香五月天婷婷久久婷婷色综合91|国产传媒自偷自拍|久久影院亚洲精品|国产欧美VA天堂国产美女自慰视屏|免费黄色av网站|婷婷丁香五月激情四射|日韩AV一区二区中文字幕在线观看|亚洲欧美日本性爱|日日噜噜噜夜夜噜噜噜|中文Av日韩一区二区

您正在使用IE低版瀏覽器,為了您的雷峰網(wǎng)賬號安全和更好的產(chǎn)品體驗,強烈建議使用更快更安全的瀏覽器
此為臨時鏈接,僅用于文章預(yù)覽,將在時失效
人工智能學術(shù) 正文
發(fā)私信給我在思考中
發(fā)送

0

英國AI學者Michael Lones獨家避坑指南,破解機器學習五大陷阱

本文作者: 我在思考中 2021-08-10 10:01
導語:近日,Michael A. Lones教授在arXiv提交了一篇論文,全面論述了機器學習在實際應(yīng)用中的常見陷阱以及對應(yīng)方法,以幫助機器學習的學術(shù)小白們快速入門。

英國AI學者Michael Lones獨家避坑指南,破解機器學習五大陷阱


編譯:Don、維克多、琰琰

近日,Michael A. Lones教授在arXiv提交了一篇論文,全面論述了機器學習在實際應(yīng)用中的常見陷阱以及對應(yīng)方法,以幫助機器學習的學術(shù)小白們快速入門。
英國AI學者Michael Lones獨家避坑指南,破解機器學習五大陷阱
 論文地址:https://arxiv.org/pdf/2108.02497.pdf

Michael A. Lones是愛丁堡赫瑞瓦特大學數(shù)學與計算機科學系副教授,主要研究研究涵蓋優(yōu)化、數(shù)據(jù)挖掘、醫(yī)學信息學、系統(tǒng)生物學和非標準計算等。
作為一名資深機器學習領(lǐng)域?qū)<?,Michael 更關(guān)注學術(shù)界,而非工業(yè)界(工業(yè)界水太深,還得教會你怎么勸酒哈哈)。這篇論文的經(jīng)驗分享,是他在實際的機器學習教學和研究中積累的知識。不同于其他普遍的機器學習方法,本文僅反映學術(shù)界關(guān)注的一些重點問題,比如如何嚴謹?shù)卦u估和比較機器學習模型,如何在論文中更好的論述自己的工作等。
為了使本文更加生動和易讀,Michael 采用了簡單明了的“該做什么,不該做什么”的編寫風格來,以免大家還得費勁巴拉的“總結(jié)本段大意、總結(jié)文章大意”。
總體來看,本文更側(cè)重于學術(shù)研究背景下的常見問題,比如學術(shù)狗們需要在論文里同時對若干種方法進行嚴格的論述和比較,并從現(xiàn)象中挖掘出有效的結(jié)論,升華工作的深度和內(nèi)在。具體而言,它涵蓋了機器學習的五個階段:
  • 在建立模型之前要做什么準備?
  • 如何可靠地建立模型
  • 如何正確全面而穩(wěn)健地評估模型
  • 如何客觀地比較模型
  • 如何匯總、分析現(xiàn)象,形成結(jié)論并提出觀點



1

構(gòu)建模型前的準備

很多人在接到一個項目或者研究需求的時候,會火急火燎的寫代碼、訓練模型、評估模型,好像一天就要把所有的事兒都給干完。但其實我們應(yīng)該慢下來,首先要花時間思考這個項目的目標,分解它的需求,并且踏下心來細細查看要輸入模型的數(shù)據(jù),想想這些數(shù)據(jù)有沒有什么規(guī)律?潛規(guī)則?或者限制?

英國AI學者Michael Lones獨家避坑指南,破解機器學習五大陷阱

此外,我們還得花點心思了解一下這個領(lǐng)域的研究進展,其他工作已經(jīng)做過哪些嘗試,結(jié)果如何。如果不做這些前期的準備,直接上來就寫代碼,最終很可能會得到一些重復的結(jié)論,訓練出一套無法滿足預(yù)期的模型,還會掉進別人已經(jīng)陷進去的坑里。這樣浪費時間不說,還無法發(fā)表自己的論文。

1.多花時間了解一下手中的數(shù)據(jù)

我們做研究的目的就是發(fā)表論文。如果收集的數(shù)據(jù)質(zhì)量很高,噪聲沒有特別明顯;采集的設(shè)備和方法也十分可靠,那么發(fā)論文就容易多了。
舉例來說,如果從網(wǎng)上下載的數(shù)據(jù)集,一定確保其來源的可靠性;如果是一篇論文中開源的,一定要認真去讀這篇論文,確保它不是發(fā)表在野雞會議/野雞期刊上的文章,而是一些比較靠譜的來源。
此外,我們要檢查文章中有沒有提到過數(shù)據(jù)集的局限性。千萬不要以為一個數(shù)據(jù)集被很多篇論文引用過,它的質(zhì)量就很好。有時候人們可能僅僅是因為這個數(shù)據(jù)集的獲取成本低,下載速度快,或者不用給作者發(fā)送索取郵件,而去用一些質(zhì)量稍差的數(shù)據(jù)。事實上,很多在學術(shù)界被廣泛使用的數(shù)據(jù)集也存在很大局限性。具體的論述可以去看[Paullada等人,2020]的討論。
如果用質(zhì)量很差的數(shù)據(jù)集訓練模型,訓練出的模型性能大概率也很差,我們稱其為“Garbage in Garbage out,垃圾進垃圾出”。因此,在項目開始的時候,我們要確保數(shù)據(jù)的可用性,保證它是有意義的。對此,建議去做一些探索性的數(shù)據(jù)分析,至于如何發(fā)現(xiàn)并處理原始數(shù)據(jù)集的缺失項和數(shù)據(jù)點不一致的問題,可以看看[Cox2017]的工作。
千萬別犯懶,在訓練模型之前對數(shù)據(jù)進行處理的成本,是整個機器學習流程中最低的,也是最容易的。至少,我們不用回頭再跟導師或者論文評委掰扯為什么使用了質(zhì)量不好的數(shù)據(jù)集。

2.別偷看測試集的數(shù)據(jù)
觀察原始數(shù)據(jù)的質(zhì)量和模式是機器學習過程的好習慣,畢竟知道根基才知道如何搭建上層建筑嘛。當我們觀察數(shù)據(jù)時,很可能從中“悟到一些什么”,并且將它們變成先驗知識固化在我們的腦海中。這些模式和知識會指導我們進行正確的建模和數(shù)據(jù)處理。

但是,在這個過程中,要注意千萬不要作出一些“不可檢驗的假設(shè)”,這些不可檢驗的假設(shè)如何被放進模型中,可能會將僅出現(xiàn)在測試集中的信息偷偷泄露給模型。在這里,“不可側(cè)視”這一點很重要。我們可以根據(jù)數(shù)據(jù)做出一些假設(shè),但是這些假設(shè)應(yīng)該都是從訓練集中得到的,絕對不能從測試集中偷窺。
為了保證這一點,在最初的探索性分析階段,我們應(yīng)該避免對測試集進行觀察和分析,否則很可能會自覺或不自覺的做出一些假設(shè),以一種無法測試的方法限制模型的通用性。關(guān)于這一點我在下文中也多次提到的問題,因為一旦測試集的信息泄漏到訓練過程,機器學習模型的泛化能力將會遭遇災(zāi)難性的打擊。 

3.確保數(shù)據(jù)量是足夠的
如果沒有足夠的數(shù)據(jù),就不可能訓練出一個泛化能力強的模型。從復雜且摻有噪聲的數(shù)據(jù)中抽絲剝繭總結(jié)規(guī)律可不是一件容易事兒,這項任務(wù)極具挑戰(zhàn),這種關(guān)系在建立模型之前可能隱藏的極深。這種關(guān)聯(lián)的深淺完全取決于數(shù)據(jù)集中的有效信息和噪聲的比例,也就是所謂的信噪比。
英國AI學者Michael Lones獨家避坑指南,破解機器學習五大陷阱

如果信噪比較高,也就是有效信息的比例較高的話,模型只需要較少的數(shù)據(jù)就能學到這種關(guān)聯(lián)性;但如果數(shù)據(jù)集的信噪比很低,噪聲太大,就需要用特別多的數(shù)據(jù)才能教會模型。但實際情況是,數(shù)據(jù)獲取的成本太昂貴了,我們通常無法得到更多的數(shù)據(jù),這個問題普遍存在于機器學習的各個領(lǐng)域。此時便可以使用交叉驗證來更高效地利用有限的數(shù)據(jù)。
當然,我們還可以使用數(shù)據(jù)增強技術(shù)(可見[Wong et al., 2016, Shorten and Khoshgoftaar, 2019])來增加數(shù)據(jù)量,這種技術(shù)對于提升小數(shù)據(jù)集上的機器學習性能是相當有效的,尤其是在數(shù)據(jù)集類別不平衡時,也就是某些子類的數(shù)據(jù)量有限的情況下。類別不平衡通常是指某些類別的樣本量會比其他類別少,相關(guān)研究可見Haixiang等人[2017]的處理方法。
如果數(shù)據(jù)量也十分有限,還要控制好機器學習模型的復雜度,別引入太多的參數(shù)。比如像深度學習網(wǎng)絡(luò),很多大模型的參數(shù)量可能會輕輕松松超過小數(shù)據(jù)集中的樣本量??傊瑹o論是通過哪種解決方法,最重要的是盡早發(fā)現(xiàn)數(shù)據(jù)量的問題,并提出一個合適的方案緩解它。  

4.和領(lǐng)域?qū)<液煤昧牧?/span>

領(lǐng)域?qū)<业慕?jīng)驗都是十分寶貴,他們可以幫我們了解這個領(lǐng)域中需要解決的問題,幫助我們選擇合適的特征集以及機器學習模型,幫助我們把模型介紹給最需要和最適合的人等等。

英國AI學者Michael Lones獨家避坑指南,破解機器學習五大陷阱

如果在建立模型的時,沒有征求過領(lǐng)域?qū)<业囊庖?,很可能會導致項目無法聚焦到痛點問題上,或者不能以最合適最精煉的姿勢解決問題。一個常見的例子就是,在智慧健康領(lǐng)域或者智能財務(wù)系統(tǒng)領(lǐng)域,我們需要用黑盒算法來幫助醫(yī)生進行診斷或者財務(wù)決策,由于領(lǐng)域的特殊性,我們必須要了解這些算法是如何得出結(jié)論的,因為這關(guān)系到人命和金錢。
在這兩個場景中,領(lǐng)域?qū)<揖褪鞘种匾?。他們會幫我們在項目開始之初就理解數(shù)據(jù),指出可能具有相關(guān)性和預(yù)測性的特征。在項目結(jié)束時,還能幫我們在相關(guān)的領(lǐng)域期刊上發(fā)表論文,讓我們有機會接觸到研究中的最可能的用戶們。

5.認真看看領(lǐng)域的發(fā)展現(xiàn)狀

我們很難發(fā)現(xiàn)一些新研究課題或方向,更多的時候都是在前人挖的坑中灌水(跟隨研究)。所以得花時間了解一下前人做過的研究,學習他們的研究計劃和思路,以及使用的方法論是非常必要的。
學術(shù)就是一個圈,和別人在一個坑里灌水再正常不過,這不是一件壞事兒,因為學術(shù)的進步通常是一個個迭代的過程,每一個研究的進步都能為后人帶來很多啟發(fā)和指導。當然,有時候我們想到一個新的idea,欣喜若狂,開始要大干一場的時候,突然發(fā)現(xiàn)已經(jīng)有人做過了類似的研究,不免沮喪失望,但是也有可能他們的研究沒有盡善盡美,還留下一些其他方向的漏洞。此時,這些已經(jīng)有的研究就能成為我們研究的理由和動機。
而如果我們忽略前人的研究,有可能會過錯很多有價值的信息。比如,有人可能已經(jīng)嘗試過你的想法,并且驗證了這個idea不靠譜,還給出了特別詳實的論述和討論,那其實這篇論文是為你節(jié)省了好幾年的時間,不用在此浪費時間和精力。又或者有些工作已經(jīng)將你的想法的一部分或者全部做過了,也別灰心,你完全可以在他們的基礎(chǔ)上繼續(xù)努力。
因此,在開始工作之前,一定要去做一個文獻的調(diào)研和匯總,最好能輸出一篇綜述并形成觀點。如果做綜述太晚,可能意味著在寫論文時,要爭先恐后、不厭其煩地解釋為什么要用跟前人一樣的方法來搭建現(xiàn)在這套系統(tǒng),分明人家已經(jīng)做過了,還要自己重新做的原因是什么。

6.想想你的模型要怎么實際跑起來

我們?yōu)槭裁匆⒁粋€機器學習模型?這是一個靈魂追問,它的答案會直接影響到模型開發(fā)的過程。許多學術(shù)工作僅僅是做研究,而不是真的要將它用于工業(yè)界實際部署運行。這無可厚非,因為建立和分析模型的過程本身就可以對問題提供非常有用的洞察力。
然而,對于很多學術(shù)研究來說,他們的最終目標是產(chǎn)生一個可以在現(xiàn)實世界中部署和運行的機器學習模型。如果是這種情況,我們就需要盡早去考慮部署的問題。例如,如果我們想要將模型部署在一個計算和存儲資源都十分有限的環(huán)境中(傳感器節(jié)點或者機器人硬件),受制于運行的平臺資源,模型的復雜度可能不能太大。又比如,當我們的應(yīng)用場景對運行時間有著嚴格的限制,需要在幾毫秒內(nèi)完成數(shù)據(jù)計算的話,選擇模型和驗證的過程時要重點考慮這一點。
另一個考慮因素是,如何將模型和所部署的底層軟件系統(tǒng)有機而高效地組織起來。這個過程通常沒有想象中的那么簡單(見[Sculley等人,2015])。但一些新型的方法已經(jīng)在嘗試解決這些困難,比如ML Ops[Tamburri, 2020]。



2

如何可靠地建立模型

寫代碼構(gòu)建機器學習模型是機器學習開發(fā)過程中最讓人開心的一部分。當我們安裝完簡單易用的文檔和功能齊全的機器學習包(或者叫框架)后,會很容易搭建出一個模型,然后輕輕松松的將數(shù)據(jù)喂進去,看看出來的是個什么妖魔鬼怪。有時候訓練出來的效果不好,從而導致模型一片糟糕。這種問題通常還很難定位和反推,找不到問題出現(xiàn)在哪個環(huán)節(jié)。
因此,我們需要用一種有組織、有規(guī)律、可溯源的方式來建立模型,這既能幫我們確定如何正確使用原始數(shù)據(jù),也能幫我們理清模型構(gòu)建時候的各種選擇。 

1.千萬別讓測試集數(shù)據(jù)泄漏訓練過程中去

在機器學習開發(fā)的生命周期中,衡量模型性能是一項十分重要的任務(wù)。對模型而言,客觀準確的評估模型的泛化程度事關(guān)重大。但是在實際的研究和開發(fā)中,一個常見的問題是測試集會泄漏到模型的配置、訓練或者選擇過程中。當這種情況發(fā)生的時候,測試數(shù)據(jù)集就不能用于客觀地衡量模型的能力。這也是很多工作中的模型看似強悍,但一旦用在真實世界中就趴窩的常見原因。有很多方法會導致測試集數(shù)據(jù)泄漏,其中有一些披著一張人畜無害的面具,極具迷惑性。 

英國AI學者Michael Lones獨家避坑指南,破解機器學習五大陷阱

例如,在數(shù)據(jù)準備期間,使用整個數(shù)據(jù)集的均均值和方差對原始數(shù)據(jù)進行縮放或者歸一化。但實際上我們應(yīng)該只能用訓練集的均值和方差對數(shù)據(jù)進行預(yù)處理,測試集中的數(shù)據(jù)是不能參與均值方差的計算的。其他常見的信息泄漏情況是在劃分數(shù)據(jù)之前就進行了特征選擇,以及使用相同的測試數(shù)據(jù)集來評估多個模型的通用型。
為了避免發(fā)生這些問題,我們應(yīng)該在項目伊始就劃分出一個獨立的數(shù)據(jù)子集,并在項目結(jié)束的時候只用這個獨立的數(shù)據(jù)子集來評估一個單一模型的通用型。更詳細的討論可以參考[Cawley and Talbot, 2010]和[Kaufman et al., 2012]的論述。

2. 嘗試用一系列不同的模型

一般來說,沒有任何的模型是“萬金油”,也就是沒有哪個模型能同時在速度、模型大小、精度、精確率、召回率等方面都做到最好。一定還有個模型能在某一方面或某幾個方面超過它。這一點在“沒有免費的午餐”定律中能夠得到很好的體現(xiàn)。這個定理表明,在考慮所有可能的指標和優(yōu)缺點時,沒有任何一種機器學習方法能夠全面優(yōu)于其他方法[Wolpert, 2002]。 
因此,我們在設(shè)計和訓練機器學習模型的時候,主要目標是去找到那個對當前特定問題最有效最可用的機器學習模型。這個過程中可能會有一些先驗的知識能夠提供指導,但是大多數(shù)情況下都只能在黑暗中摸索。幸運的是,我們現(xiàn)在已經(jīng)有了很多高級語言的工具包。

英國AI學者Michael Lones獨家避坑指南,破解機器學習五大陷阱

比如Python(Scikit-learn[Varoquaux等人,2015])、R語言(如caret[Kuhn,2015])、Julia(如MLJ[Blaom等人,2020])等,它們能夠很輕松的對模型進行參數(shù)的搜索、超參的調(diào)整和比較,從而低成本地生成多個模型。
所以何樂而不為呢?多嘗試一些模型,找出哪個最有效。在“沒有免費的午餐”定律中,重要的是如何避免“NIH綜合癥(not invented here syndrome)”,它是指人們不愿意使用、購買或者接受某種產(chǎn)品、研究成果或者知識,不是出于技術(shù)或者法律等因素,而只是因為它源自其他地方,可以理解成一種傲慢和偏見。放在自己的系統(tǒng)中,就是避免由于自大和狂妄,導致忽略那些不是自己所提的改進點上帶來的改進。這可能會導致我們忽略對某個特定問題的最佳模型。

3.別用不合適的模型

由于獲取一些機器學習工具過于方便了,我們在做一些實驗或者構(gòu)建模型的成本特別的低,而忽略了模型背后的計算機制和應(yīng)用背景是否合適。因此,我們很可能會將一些不合適的模型應(yīng)用到數(shù)據(jù)集上。比如將本具有類別性質(zhì)的標簽(比如1代表男,2代表女)當作具有數(shù)值含義的標簽(比如1代表1米,2代表2米)給到模型中,或者錯將時間序列數(shù)據(jù)輸入到不同時刻輸入上沒有依賴關(guān)系的模型當中。這一點在寫論文的時候應(yīng)該尤其注意,因為選擇了不恰當?shù)哪P蜁屧u委感覺很不專業(yè),在理論上也很難講通。 
此外,我們應(yīng)該避免使用一些不必要的復雜模型。如果數(shù)據(jù)有限,同時業(yè)務(wù)也沒有特別的麻煩,其相關(guān)關(guān)系也很好理解和表達,可以選擇不使用深度學習。最后,別用“這個模型結(jié)構(gòu)是新的”作為選擇的理由,因為老的、成熟的模型歷久彌堅,它們經(jīng)歷了風雨洗禮,其魯棒性和可用性通常要比新模型更靠譜。 

4. 一定要優(yōu)化模型的超參數(shù)

超參數(shù)指影響的是模型配置的預(yù)設(shè)參數(shù)。許多模型都有超參數(shù),比如支持向量機中的核函數(shù)、隨機森林中的樹,以及神經(jīng)網(wǎng)絡(luò)的架構(gòu)。大部分超參數(shù)都會顯著影響模型性能,并且沒有“一刀切”的解決方法。也就是說,它們需要適合的特定數(shù)據(jù)集,以最大限度地利用模型。 
隨機搜索和網(wǎng)格搜索是目前常用的超參數(shù)優(yōu)化策略,這兩種策略雖然編寫簡單,但很難擴展到大量超參數(shù)或訓練成本很高的模型中。因此,我們還需要探索更智能的搜索最佳配置的工具,相關(guān)研究可參考[Yang and Shami,2020]。此外,除了數(shù)據(jù)挖掘管道的其他部分外,我們還可以使用AutoML技術(shù)優(yōu)化模型及其超參數(shù)的選擇,相關(guān)綜述可參見[He,2021]等人的工作。

5. 優(yōu)化超參數(shù)和特征選擇時要小心 

2018年Cai等人的調(diào)查已經(jīng)發(fā)現(xiàn),特征選擇是模型訓練的一個常見階段。一般而言,執(zhí)行超參數(shù)優(yōu)化和特征選擇的關(guān)鍵,在于要將其視為模型訓練的一部分,而不是在模型訓練之前對其進行操作。但事實上,我們經(jīng)常就是在模型訓練開始之前對整個數(shù)據(jù)集進行特征選擇,而這將會導致測試集的信息提前泄漏給訓練過程。
理想情況下,如果要優(yōu)化模型使用的超參數(shù)或特征,應(yīng)使用與訓練模型完全相同的數(shù)據(jù)。實現(xiàn)這一點的常用技術(shù)是嵌套交叉驗證(也稱為雙交叉驗證),它涉及到在主交叉驗證循環(huán)內(nèi)作為額外循環(huán)進行超參數(shù)優(yōu)化和特征選擇。相關(guān)研究可參見[Cawley and Talbot,2010]。


3

如何合理地評估模型

為了推動研究領(lǐng)域的進步,或者推導出可靠的結(jié)論,很多研究員可能會對ML模型做出不公平的評估,這樣做無疑會使學術(shù)進步變得“渾濁”。因此,我們應(yīng)該仔細考慮如何在實驗中使用數(shù)據(jù),如何測量模型的真實性能,以及如何以有意義且信息豐富的方式報告模型的真實性能。
英國AI學者Michael Lones獨家避坑指南,破解機器學習五大陷阱

1. 務(wù)必使用適當?shù)臏y試集

我們通常使用測試集來測量ML模型的泛化性。因為即便一個復雜的模型能夠完全學習訓練數(shù)據(jù),也不一定能捕獲任何可泛化的知識。因此,測試模型在訓練集上的表現(xiàn)如何幾乎毫無意義。確保測試數(shù)據(jù)集的合理性非常重要,這要求它應(yīng)該覆蓋更廣泛的目標人群,且不能與訓練數(shù)據(jù)集重合。


舉個例子,如果訓練集和測試集中同時有一張?zhí)鞖馇缋实膱D片,這種相同天氣條件的數(shù)據(jù),意味著測試集不是獨立的,并且因沒有捕獲更廣泛的天氣條件,而不具有代表性。當我們使用單個設(shè)備收集訓練和測試數(shù)據(jù)時,經(jīng)常會出現(xiàn)類似的情況。即使模型過度學習了一個設(shè)備的特性,很可能也不會泛化到其他設(shè)備上,并且在測試集上進行評估時也無法檢測到。
2. 務(wù)必使用驗證集
連續(xù)訓練多個模型并不罕見,研究人員經(jīng)常使用獲得的模型性能知識來指導下一個模型的配置。在執(zhí)行這項操作時,注意一定不要使用測試數(shù)據(jù)集,而要使用單獨的驗證數(shù)據(jù)集。驗證集包含的樣本,并不直接用于訓練,而是用于指導訓練。如果采用測試集來衡量模型性能,它將成為訓練過程的一個隱式部分,并且不能作為模型通用性的獨立度量——模型將逐漸過度擬合測試集(見[Cawley and Talbot,2010])。
此外,創(chuàng)建一個獨立驗證集的好處是可以隨時停止訓練。在訓練單個模型的時,使用驗證集測量模型的每次迭代過程,如果驗證分數(shù)開始下降,表明模型開始過度擬合訓練數(shù)據(jù),我們可以及時停止訓練。
3. 反復評估模型
許多ML模型是不穩(wěn)定的。如果對模型進行多次訓練,或者對訓練數(shù)據(jù)進行微小更改,很可能導致模型性能的顯著變化。因此,對模型的單一評估是不可靠的,可能會低估或高估模型的真實性能。常見的解決思路是,使用不同訓練數(shù)據(jù)集的子集對模型進行多次訓練。 
交叉驗證法(CV)使用最為廣泛,并且推出了很多變種(見[Arlot等人,2010])。標準CV訓練要重復十次以上,如果在此基礎(chǔ)上,將整個CV過程按不同的類別進行數(shù)據(jù)劃分進行可以顯著增加訓練的嚴謹性,尤其是在數(shù)據(jù)類別很少的情況下,它可以確保每個類在每次折疊中都有充分的表示。 
另外,除了評估的多個平均值和標準偏差外,也建議保留單個分數(shù)的記錄,以便之后使用統(tǒng)計測試來比較模型。

4.保留一些數(shù)據(jù),用于評估模型的實例

評估一般模型的性能(如神經(jīng)網(wǎng)絡(luò)解決問題的能力)和特定模型實例的性能(如通過一次反向傳播產(chǎn)生的特定神經(jīng)網(wǎng)絡(luò))之間有一個重要的區(qū)別。常用的交叉驗證的方法,通常更適用于前者,而不適用于后者。比如,十次交叉驗證會產(chǎn)生10個模型實例,假設(shè)選擇測試折疊分數(shù)最高的實例作為實踐中使用的模型。在這種情況下,要如何報告模型的性能?
有人可能認為測試分數(shù)是衡量模型性能的可靠指標,但事實上并非如此。首先,單次折疊中的數(shù)據(jù)量相對較小。其次,得分最高的實例很可能是測試次數(shù)最簡單的實例,也就是說,它包含的評估數(shù)據(jù)并不具有代表性。因此,估計模型實例的通用性的可靠且唯一的方法是使用另一個測試集。因此,最好單獨創(chuàng)建一個數(shù)據(jù)集,專門為最終選定的模型實例進行無偏估計。

5.不平衡的數(shù)據(jù)集不要使用“準確率”

研究人員應(yīng)該注意使用哪些度量來評估ML模型。對于分類模型,最常用的度量是準確率(accuracy),即模型正確分類的數(shù)據(jù)集中樣本的比例。如果分類是平衡的,即每個類在數(shù)據(jù)集中有相似數(shù)量的樣本,那么這種方法是可行的。但如果數(shù)據(jù)集是不平衡的,那么準確率可能會成為一個誤導指標。
例如一個數(shù)據(jù)集中,90%的樣本代表同一個類,10%代表另一個類。一個總是輸出第一個類的二元分類器,無論輸入的是什么,它的準確率都將達到90%,這樣的數(shù)據(jù)是沒有意義的。在這種情況下,最好使用Cohen的kappa系數(shù)(κ)或Matthews相關(guān)系數(shù)(MCC)等指標,這兩種指標對樣本規(guī)模的不平衡相對不敏感。關(guān)于更多處理不平衡數(shù)據(jù)的方法請參見Haixiang等人[2017]。



4

公平比較模型

比較模型是學術(shù)研究的基礎(chǔ)。如果進行了不公平的比較,那么其他研究人員可能隨后就會被誤導。因此,一定要確保在相同的環(huán)境中評估不同的模型,探索多個角度,并正確使用統(tǒng)計檢驗。

英國AI學者Michael Lones獨家避坑指南,破解機器學習五大陷阱

1.數(shù)字越大,效果越好?

在某些學術(shù)論文中,通常會這樣寫:以前的研究準確率是94%,我們論文中的模型準確率達到了95%,因此我們是SOTA。但是,有很多證據(jù)都能證明,“堆數(shù)字”的模型并不是好模型。例如,如果模型的訓練集和測試集來自同一數(shù)據(jù)的不同部分,那么模型的“數(shù)字表現(xiàn)好”的原因不言而喻。
另一個不妥之處在于:論文在比較模型的時候,對所比較的模型,往往沒有設(shè)置相同的超參數(shù)優(yōu)化。例如,一個使用默認設(shè)置,一個使用優(yōu)化參數(shù)。
因此,為了公平起見,作為研究者的你,至少應(yīng)該將“對比模型”的參數(shù)進行相同的優(yōu)化,然后進行多次評估,從而確定模型之間性能差異是否顯著。

2. 比較模型的時候,如何使用統(tǒng)計檢驗

一般而言,統(tǒng)計測試(statistical test)是比較模型差異的絕好工具。有兩類,一類用于比較簡單的機器學習模型,例如配對卡方檢驗(McNemar’s test)可以比較兩個分類器;另一類適用于大多數(shù)情況,例如評估某種數(shù)據(jù)類型是用神經(jīng)網(wǎng)絡(luò)還是決策樹進行處理的時候,交叉驗證、重復采樣等等是比較適合的方法。
另外,比較模型產(chǎn)生的結(jié)果符合何種概率分布,T分布檢驗是常用的方式,實際上Mann-Whitney's U檢驗更加適用,因為它放松了數(shù)據(jù)分布的假設(shè)。
更多方法參見:
[Raschka, 2020]
https://arxiv.org/abs/1811.12808
[Carrasco et al., 2020].
https://linkinghub.elsevier.com/retrieve/pii/S2210650219302639
 

3. 如何看待多重比較?

當采用統(tǒng)計方法比較兩個以上的模型時候,事情有點復雜。因為,采用多次配比檢驗(multiple pairwise tests)會產(chǎn)生和多次使用測試集類似的缺點:導致對顯著性過度樂觀。因為,在對兩個模型進行統(tǒng)計檢驗的時候,置信度通常設(shè)定為95%,這意味著每20次檢驗,會有一次出現(xiàn)“迷惑”結(jié)果。
如果是單一的比較,這種不確定性或許可以接受。但如果是多個模型,多次比較,那么統(tǒng)計檢驗的不確定性會累積。 
上述現(xiàn)象也被稱為:多重效應(yīng)(multiplicity effect)會導致導致所謂的‘p-hacking’(通常增加樣本容量)和‘data dredging’做法,強調(diào)搜索小的p值而不是統(tǒng)計科學推理。
為了解決這個問題,可以采用多重檢驗的校正。最常見的方法是Bonferroni校正,可以根據(jù)正在進行的測試的數(shù)量來降低顯著性閾值。
此外,還有更多的校正方法,見:
[Streiner,2015]
https://doi.org/10.3945/ajcn.115.113548.

4. 謹慎對待基準測試

在某些領(lǐng)域,用基準數(shù)據(jù)集評價機器學習模型是非常普遍的做法。其背后的思考是:如果每個人都用相同的數(shù)據(jù)進行訓練和測試模型,那么模型性能的比較就會更加透明。 
但是,如果測試集的獲取不受限制,那么就會有人把它作為訓練集,從而導致高估模型。如果限制每個人只能使用一次測試集,但總體算下來機器學習社區(qū)使用了多次測試集,這樣某些問題仍然沒辦法避免。
實際上,在同一測試集上評估多個模型,表現(xiàn)最好的模型可能剛好是過擬合的,因此無法得出SOTA的結(jié)論。 
在做研究的時候,應(yīng)該小心解讀基準數(shù)據(jù)集上的測試結(jié)果,不要認為性能的小幅度提高是顯著的。
統(tǒng)計檢驗更多討論參見:
[Paullada et al., 2020]
https://www.sciencedirect.com/science/article/abs/pii/S2210650219302639?via%3Dihub
 

5.請考慮組合模型 

機器學習有時候并不是選擇題,更多的是組合題。不同的模型相互結(jié)合往往能產(chǎn)生巨大的性能提升。通過組合,可以用一個模型彌補另一個模型的弱點。這種組合在學術(shù)上有個名詞叫做:集成學習(ensemble learning)。 
集成學習(ensemble learning)既可以從現(xiàn)有的訓練過的模型中形成,也可以將基礎(chǔ)模型作為一部分進行訓練,其目的是為了創(chuàng)建一個多樣化的模型選擇。
集成學習在考慮如何結(jié)合不同的基礎(chǔ)模型時,可以采用簡單方法,如投票;也可以采用復雜方法,用機器學習模型聚合集成模型的輸出。這種復雜方法通常被稱為堆疊(stacking)。 
集合學習的方法參見:
[Dong et al., 2020]
https://doi.org/10.1007/s11704-019-8208-z




5

如何描述工作結(jié)論

學術(shù)研究的目的不是自我炫耀,而是為知識做邊際貢獻。因此需要對工作做完整的描述,包括哪些工作有效,哪些工作無效。機器學習通常是關(guān)于權(quán)衡,在某些方面優(yōu)秀,往往意味著其他方面不達標,十全十美的模型十分罕見。 

1.透明、透明、還是透明! 

首先,工作要盡可能的透明,給別人“站在你肩膀上”的機會。用通俗易懂的方式分享模型是非常好的方式,例如你能用一個腳本實現(xiàn)論文中所有實驗,那么在發(fā)表論文時候,請分享這個腳本,這可以讓其他人輕松復現(xiàn),同時也能增加你的信心。 
這也會促使你更加小心的做研究,寫出更加干凈的代碼,仔細的記錄實驗。值得一提的是,可重復性在機器學習社區(qū)被提到的次數(shù)越來越多,所以不透明的工作可能在未來無法發(fā)表。
如何提高機器學習研究的可重復性:
[Pineau et al., 2020]
https://arxiv.org/abs/2003.12206
 

2. 用多種方式體現(xiàn)結(jié)論

在評估和比較模型的時候,使用多個數(shù)據(jù)集進行測試是一種嚴謹?shù)姆椒ā_@有助于克服單個數(shù)據(jù)集的缺陷,并有助于模型的完整性描述。
另外,采用多個指標報告模型在數(shù)據(jù)集上表現(xiàn),也能從不同的角度說明模型的性能。例如,如果決定用準確率衡量模型,那么如果加上對“類別失衡不太敏感”的指標則是極好的。如果使用部分指標,如精度、召回率、敏感度或特異度,也要包括一個能更全面地反映模型錯誤率的指標。
此外,清晰、明確的指標也對解釋模型有好處,例如如果報告AUC,請指明這是ROC曲線還是PR曲線下的區(qū)域。
指標討論請見[Blagec et al., 2020]
https://arxiv.org/abs/2008.02577

3. 數(shù)據(jù)支撐論據(jù)

為了避免其他研究員誤入歧途,所以請不要提出無效的結(jié)論。一個常見的錯誤是:論文陳述背后沒有訓練和測試數(shù)據(jù)支撐。一個模型在某個數(shù)據(jù)集上表現(xiàn)優(yōu)秀,并不意味著在其他數(shù)據(jù)集上也表現(xiàn)良好。
所以,能從實驗研究中推斷出的東西總是有限的。一個重要原因是抽樣偏差,即數(shù)據(jù)對真實世界并沒有足夠的代表性。另外,數(shù)據(jù)與數(shù)據(jù)之間可能存在重疊,非獨立性的數(shù)據(jù)也有可能讓模型產(chǎn)生偏差。 
因此,不要過分渲染你的發(fā)現(xiàn),并意識到其局限性。
機器學習社區(qū)數(shù)據(jù)集調(diào)查:
[Paullada et al., 2020]
https://arxiv.org/abs/2012.05345

4.謹慎使用統(tǒng)計檢驗

統(tǒng)計檢驗并不完美,保守的方法傾向于低估;自由(liberal)的方法傾向于高估。所以一個現(xiàn)實積極結(jié)果的測試并不總代表有意義,消極的測試結(jié)果也并不代表無意義。
除了統(tǒng)計學意義之外,另一個需要考慮的問題是兩個模型之間的差異是否真正重要。如果你有足夠的樣本,即使實際的性能差異微不足道,也可以找到顯著的差異。所以,為了更好地說明某件事情是否重要,可以測量效應(yīng)大小。常見的方法例如Cohen's d統(tǒng)計、Kolmogorov-Smirnov等等。 
p值的討論參見[Betensky, 2019]:
https://www.tandfonline.com/doi/full/10.1080/00031305.2018.1529624

5.洞察模型
 
訓練過的模型包含很多有用的信息。但許多研究者只說模型的性能指標,并沒有對模型實際學到的東西給出見解。請記住,研究的目的不是為了獲得比別人高一點的準確率,而是為了產(chǎn)生知識和理解。如果你能做到這一點,你就能在更好的刊物上發(fā)表論文。 
因此,請仔細觀察模型,并嘗試了解模型的輸出。對于相對簡單的模型,如決策樹,提供模型的可視化也是有益的,并且大多數(shù)庫都支持這一功能。對于復雜的模型,如深度神經(jīng)網(wǎng)絡(luò),考慮使用可解釋的人工智能(XAI)技術(shù)來提取知識,雖然不太可能弄清楚模型到底在做什么,但總有些有用的見解。 
數(shù)據(jù)驅(qū)動、知識感知的可解釋人工智能研究綜述見[Li et al. [2020]]
https://ieeexplore.ieee.org/document/9050829





6

總結(jié):開放心態(tài)

這份文檔并沒有囊括所有方面,有些建議還有未確定的結(jié)論。但文章中列舉的一些錯誤事例,至少我們可以探討,這也是研究的本質(zhì)。
機器學習的理論總是滯后于實踐,我們今天認為正確的事情,在明天看來或許是錯誤的。所以,請你以開放的心態(tài)對待機器學習:善于Fellow最新發(fā)展,謙虛接受你不懂的知識。 
 
原文鏈接:https://arxiv.org/pdf/2108.02497v1.pdf




贈書福利 

AI科技評論本次聯(lián)合【圖靈教育】為大家?guī)?strong>10本《算法(第四版)》正版新書。

英國AI學者Michael Lones獨家避坑指南,破解機器學習五大陷阱

AI科技評論將一共選出 10名讀者,每人送出《算法(第四版)》一本。

在2021年8月8日二條文章贈書 | 看不懂《算法導論》?先讀完豆瓣評分 9.4 的算法入門巨著》留言區(qū)留言,歡迎大家暢所欲言,談一談你對本書的看法和期待。在綜合留言質(zhì)量(留言是敷衍還是走心)和留言點贊最高(注:點贊最高的前10不意味著一定會中獎)的讀者中選出10位讀者獲得贈書。獲得贈書的讀者請聯(lián)系 AI 科技評論客服(aitechreview)。

  • 留言內(nèi)容會有篩選,例如“選我上去”、“這書寫的很棒(僅僅幾個字)”等內(nèi)容將不會被篩選,亦不會中獎。

  • 留言送書活動時間為2021年8月8日 - 2021年8月12日(23:00),活動推送時間內(nèi)僅允許贈書福利中獎一次。

 雷鋒網(wǎng)雷鋒網(wǎng)雷鋒網(wǎng)

雷峰網(wǎng)特約稿件,未經(jīng)授權(quán)禁止轉(zhuǎn)載。詳情見轉(zhuǎn)載須知。

英國AI學者Michael Lones獨家避坑指南,破解機器學習五大陷阱

分享:
相關(guān)文章
當月熱門文章
最新文章
請?zhí)顚懮暾埲速Y料
姓名
電話
郵箱
微信號
作品鏈接
個人簡介
為了您的賬戶安全,請驗證郵箱
您的郵箱還未驗證,完成可獲20積分喲!
請驗證您的郵箱
立即驗證
完善賬號信息
您的賬號已經(jīng)綁定,現(xiàn)在您可以設(shè)置密碼以方便用郵箱登錄
立即設(shè)置 以后再說