機器學習“七宗罪”:影響可信度的七個常見錯誤
機器學習是一個偉大的工具,它正在改變我們的世界。在許多優(yōu)秀的應(yīng)用中,機器學習(尤其是深度學習)比傳統(tǒng)方法優(yōu)越得多。從用于圖像分類的Alex-Net到用于圖像分割的U-Net,人們看到了計算機視覺和醫(yī)學圖像處理領(lǐng)域的巨大成功。
近日,機器學習專家Andreas Maier在一篇文章中列出了人們會犯的關(guān)于機器學習的七個常見錯誤。
這些問題很嚴重,可能導致錯誤的結(jié)論,甚至機器學習專家在工作時也會犯這樣的錯誤。即使是專家,也很難發(fā)現(xiàn)其中的許多錯誤,因為這需要詳細查看代碼和實驗設(shè)置才能弄清楚。只有當你完全確定自己沒有落入這些謬誤中的任何一個時,你才應(yīng)該繼續(xù)前進或公開你的成果。
錯誤1:數(shù)據(jù)和模型濫用

初學者常常會犯數(shù)據(jù)和模型濫用這個錯誤。在常見的情況下,實驗設(shè)計存在缺陷,例如訓練數(shù)據(jù)用作測試數(shù)據(jù)。使用簡單的分類器,這導致大多數(shù)問題的識別率達到100%。在更復雜,更深入的模型中,精度可能不是100%,而是98–99%。
因此,如果在第一張照片中獲得了如此高的識別率,則應(yīng)仔細檢查實驗設(shè)置。但是,如果使用新數(shù)據(jù),模型將完全崩潰,甚至可能產(chǎn)生比隨機猜測更糟糕的結(jié)果,即準確度低于1 / K,其中K是類別數(shù),例如兩類問題的比例不到50%。
在同一行中,還可以通過增加參數(shù)的數(shù)量來輕松過擬合模型,從而完全記住訓練數(shù)據(jù)集。另一個變體是使用過小的訓練集,它不能代表您的應(yīng)用程序。所有這些模型都可能會破壞新數(shù)據(jù),即在實際應(yīng)用場景中使用時。
錯誤2:不公平的比較
即使是機器學習方面的專家也會犯這種錯誤。如果想要證明你的新方法比最先進的方法更好,它通常會被提交。特別是研究論文往往會屈服于這一點,以說服評審者他們的方法具有優(yōu)越性。
在最簡單的情況下,從某個公共存儲庫下載一個模型,并使用這個模型,而不需要對模型進行微調(diào)或適當?shù)某瑓?shù)搜索,這個模型是針對當前的問題開發(fā)的,你可以調(diào)整所有參數(shù)以獲得優(yōu)質(zhì)的測試數(shù)據(jù)性能。
關(guān)于這個錯誤,最近的一個例子是Isensee等人在論文中證明了原始的U-net幾乎勝過所有自2015年以來針對十個不同問題提出的對該方法的改進。
因此,在應(yīng)用于新建議的方法時,應(yīng)該始終對比較新的模型執(zhí)行相同數(shù)量的參數(shù)調(diào)優(yōu)。
錯誤3:微不足道的進步
在做了所有的實驗之后,你最終找到了一個比最先進的模型產(chǎn)生更好結(jié)果的模型。然而,即使在這一點上,你也沒有完成。機器學習中的所有內(nèi)容都是不精確的。
此外,由于學習過程的概率性,你的實驗受到許多隨機因素的影響。為了考慮這種隨機性,需要執(zhí)行統(tǒng)計測試。
這通常是通過使用不同的隨機種子多次運行實驗來執(zhí)行的。
這樣,你可以報告所有實驗的平均性能和標準偏差。使用顯著性檢驗,如t檢驗,你現(xiàn)在可以觀察到的改善僅僅是與機會有關(guān)的概率。
為了使您的結(jié)果有意義,此概率應(yīng)至少低于5%或1%。為此,你不必是統(tǒng)計專家。
有在線工具可以計算它們,例如識別率比較或相關(guān)比較。如果進行重復實驗,請確保應(yīng)用Bonferroni校正,即你所需的顯著性水平除以相同數(shù)據(jù)上的實驗重復次數(shù)。
錯誤4:混淆和錯誤的數(shù)據(jù)

數(shù)據(jù)質(zhì)量是機器學習的較大陷阱之一。它可能會導致嚴重的偏見,甚至導致AI存在種族主義傾向。但是,問題不在于訓練算法,而在于數(shù)據(jù)本身。
錯誤5:不恰當?shù)臉撕?/strong>

Protagoras曾說過:“一切事物的尺度是人。”這也適用于許多分類問題的標簽或基本事實。
我們訓練機器學習模型來反映人為類別。在許多問題中,我們認為在定義類的時候類就已經(jīng)很清楚了。但查看數(shù)據(jù)時,就會發(fā)現(xiàn)它經(jīng)常包含一些模棱兩可的情況。
錯誤6:交叉驗證混亂
這與錯誤1幾乎是相同的,但它是變相的錯誤。
因此,即使是專家也可能會犯此類錯誤。典型的設(shè)置是第一步需要選擇模型,體系結(jié)構(gòu)或特征。因為只有幾個數(shù)據(jù)樣本,所以你決定使用交叉驗證來評估每個步驟。
因此,你可以將數(shù)據(jù)拆分為N折,選擇具有N-1折的特征/模型,并在第N折上求值。重復此N次后,可以計算平均性能并選擇性能優(yōu)秀的功能。
現(xiàn)在,您知道什么是很好的功能,然后繼續(xù)使用交叉驗證為機器學習模型選擇最好的參數(shù)。這似乎是正確的,但這是有缺陷的,因為你已經(jīng)在第一步中看到了所有測試數(shù)據(jù)并平均了所有觀察值。
這樣,所有數(shù)據(jù)中的信息都會傳遞到下一步,您甚至可以從完全隨機的數(shù)據(jù)中獲得良好的結(jié)果。
為了避免這種情況,你需要遵循一個嵌套過程,將第一步嵌套在第二個交叉驗證循環(huán)中。當然,這非常昂貴,并且會產(chǎn)生大量實驗運行。請注意,僅由于對相同數(shù)據(jù)進行大量實驗,在這種情況下,僅由于偶然原因,你也會產(chǎn)生良好的結(jié)果。
因此,統(tǒng)計測試和Bonferroni校正同樣是強制性的(參見錯誤三)。我通常會盡量避免進行大型的交叉驗證實驗,并嘗試獲取更多數(shù)據(jù),以便進行訓練/驗證/測試拆分。
錯誤7:對結(jié)果的過度解釋
除了所有先前的過失之外,我認為在當前階段,我們在機器學習中經(jīng)常犯的比較大的過錯是,過度解釋和夸大了自己的結(jié)果。
當然,每個人都對通過機器學習創(chuàng)建的方案感到滿意,并且你也有權(quán)為此感到自豪。但是,應(yīng)該避免將結(jié)果推斷在看不見的數(shù)據(jù)或狀態(tài)上。
你應(yīng)該小心說話,每個主張都應(yīng)基于事實。
你可以在討論中清楚地表明推測的基礎(chǔ)上假設(shè)該方法的普遍適用性,但要真正聲明這一點,必須提供實驗或理論證據(jù)?,F(xiàn)在,很難讓你的方法具有應(yīng)有的可見性,盡管提出重要的觀點有助于推廣自己的方法,但我還是建議你踏實低調(diào)并堅持事實。