【導讀】前幾天,應用數據科學研究者William Koehrsen發布一篇關於「過度擬合和擬合不足」的博文,作者解釋了在模型訓練中過擬合與欠擬合的概念與原因,並解釋了方差與偏差的概念,並介紹了克服模型過擬合與欠擬合的方法——驗證集。也許你曾看過關於「過擬合與欠擬合」的博文,但是本文絕對也值得一看,因為作者使用現實生活中的例子進行概念講解,把概念的理解變成一個有趣的過程,相信會令您耳目一新!
Overfitting vs. Underfitting: A Conceptual Explanation
過擬合與欠擬合:概念解釋
基於樣例的數據科學核心概念框架
如果你想學英語,雖然你對語言沒有預先的知識,但是你也聽說過英國最偉大的作家是威廉·莎士比亞。所以,一個自然學習方法就是把自己鎖在圖書館裡,去記住他的作品。 經過一年的學習,你從學習中走出來前往紐約市,用「Good dawning to thee, friend!」問候你所看到的第一個人。當然,對方可能會不屑一顧 「神經病!」。你可以再試試:「Dear gentlewoman, How fares our gracious lady?」又會得到一個失敗而急促的回答。 經過第三次失敗的嘗試,你會心煩意亂:「What shame what sorrow!」。的確如此:你剛剛經歷了建模過程中最基本的錯誤之一,在訓練數據的時候過擬合了。
在數據科學中,過擬合模型被解釋為在訓練集上具有高方差(high variance)和低偏差(low bias),導致新測試數據泛化能力不佳。我們可以用學習英語的過程來簡化「過擬合」概念的理解。我們要建立的模型是如何使用英語進行交流。我們的訓練數據是莎士比亞的全部作品,我們的測試集是在紐約與人交流。如果我們用社會接受度來衡量性能,那麼我們的模型就不能推廣到測試數據(因為莎士比亞的語法肯定和紐約人民的有所不同)。這很容易理解,但方差和偏差該怎麼理解呢?
方差是一個模型反應訓練數據變化的程度。由於我們只是記憶訓練集,所以我們的模型具有很高的方差:它高度依賴於訓練數據。如果我們讀完J.K Rowling的全部作品,Rowling不是莎士比亞,那麼構建出的模型將完全不同。當一個具有高方差的模型被應用到一個新的測試集上時,它不能很好地執行,這是因為原先的模型中沒有這部分訓練數據。就像一個學生只是記住了教科書中的問題,但在遇到現實世界的問題時就會感到力不從心。
有時甚至是高年級學生也應該走出去看看
偏差是方差的另一面,因為它代表了我們對數據做出假設的力度。 在我們嘗試學習英語的過程中,我們沒有形成最初的模型假設,並相信Bard的工作將教會關於語言的所有知識。這種低偏差看起來像是積極的——這也是為什麼我們會想要偏向於數據?但是,我們應該始終對數據是否能夠告訴我們所有的一切保持懷疑態度。任何自然過程都會產生噪音,而我們的訓練數據無法捕捉到所有的噪音。通常,我們應該在我們的模型中對於訓練數據中沒有看到的波動做出一些初步的假設。 例如,在我們開始閱讀之前,我們應該明白莎士比亞的作品不能從字面上教我們英語,這樣才會使我們對訓練數據持謹慎態度。
到目前為止:偏差是指我們忽略了多少數據,方差是指我們的模型依賴於數據的程度。在任何模型中,總是存在偏差和方差之間的關係,當我們建立模型時,我們試圖達到最好的平衡。偏差與方差適用於任何模型(從最簡單到最複雜的模型),對於數據科學家來說,這是一個重要的概念!
我們看到一個過擬合的模型具有高方差和低偏差。 那反過來呢:低方差和高偏差呢?這就是所謂的欠擬合:相反,如果訓練數據過於緊密,一個欠擬合的模型會忽略了訓練數據中的經驗教訓,並且沒有學習到輸入和輸出之間的基本關係。
我們以我們的例子來考慮這個問題。從我們之前試圖建立的英語學習的模型中,我們決定提前對模型做一些假設。我們也改變我們的訓練數據,通過觀看所有的英語節目自學英語。為了避免重複第一次嘗試中我們的錯誤,我們提前做出一個假設,即只有在某種語言中以最常見的詞語開始的句子(例如the, be, to, of, and, a)是重要的。 當我們學習的時候,我們不注意其他的句子,相信我們會建立一個更好的模型。
經過長時間的訓練,我們再次走上紐約街頭。 這一次我們稍微好一點,但是我們的談話再次失敗。雖然我們知道一些英語,可以理解有限的幾個句子,但是由於我們對訓練數據的偏見,我們沒有學習到這個語言的基本結構。該模型沒有高方差,但是我們對我們最初的嘗試進行了過度矯正,模型欠擬合了!
當我們嚴格關注數據的時候我們會過擬合。 當我們忽略了數據,就會欠擬合。必須有一種方法來找到最佳的平衡! 幸運的是,在數據科學方面有一套完善的解決方案,叫做驗證(validation)。 在我們的例子中,我們只使用了一個訓練集和一個測試集,這意味著我們不可能提前知道我們的模型在現實世界中會如何做。理想情況下,我們將有一個「預測試」來評估我們的模型,並在真正的測試之前做出改進。 這個「預測試」被稱為驗證集,是模型開發的關鍵部分。
我們兩次學習英語的失敗使我們更加聰明,現在我們決定使用一個驗證集。我們同時使用莎士比亞的作品和朋友秀(Friends show),因為我們學到了更多的數據,幾乎總能改善模型。這次在我們訓練結束之後,在我們上街之前,我們會評估我們的模型,第一個星期,我們的談話能力還不行,因為我們的語言模型是很糟糕的。但是,這只是驗證集,每次我們犯錯誤,我們都可以調整我們的模型。最後,我們可以與小組保持自己的對話並宣布我們已經準備好了在測試集上進行測試。
再次在現實世界中進行實驗,我們終於成功了!我們的模型現在非常適合溝通,因為我們有一個關鍵要素,即用於模型改善和優化的驗證集。
這個例子可以被簡化。 在數據科學模型中,我們使用了大量的驗證集,否則我們最終會過擬合驗證集。我們將訓練數據分成不同的子集,或者如果我們有大量的數據,我們可以使用多個驗證集。這個例子涵蓋了問題的所有方面,現在,當你聽到過擬合與欠擬合以及偏差與方差時,你就有了一個概念可以理解這個問題以及如何解決這個問題!
數據科學可能看起來很複雜,但它確實是建立在一系列基本模塊上的。 本文中涉及的概念:
過擬合:對訓練數據過度依賴。
欠擬合:不了解訓練數據中的關係。
高方差:模型在訓練數據上發生顯著變化。
高偏差:對模型的假設導致忽略訓練數據。
過擬合和欠擬合會導致測試集的泛化能力差。
模型調整的驗證集可以防止欠擬合和過擬合。
數據科學和其他技術領域不應該脫離我們的日常生活。通過用現實世界的例子來解釋概念,我們可以更好地理解這些概念。如果我們了解這個框架,那麼我們可以使用一些技巧來完善。 下一篇文章將提供一個使用圖表和度量指標的例子。
歡迎反饋和批評。你可以通過Twitter @koehrsen_will聯繫到我。
原文連結:
https://towardsdatascience.com/overfitting-vs-underfitting-a-conceptual-explanation-d94ee20ca7f9
人工智慧領域主題知識資料查看獲取:【專知薈萃】人工智慧領域26個主題知識資料全集(入門/進階/論文/綜述/視頻/專家等)
同時歡迎各位用戶進行專知投稿,詳情請點擊:
【誠邀】專知誠摯邀請各位專業者加入AI創作者計劃!了解使用專知!
請PC登錄www.zhuanzhi.ai或者點擊閱讀原文,註冊登錄專知,獲取更多AI知識資料!
請掃一掃如下二維碼關注我們的公眾號,獲取人工智慧的專業知識!
請加專知小助手微信(Rancho_Fang),加入專知主題人工智慧群交流!