在正式講這兩個概念之前我們先來看一個故事:假設你想要習英語但之前對英語一無所知,不過曾聽說過莎士比亞是一個位偉大的英國作家。你想要學英語的話,當然是將自己泡在一個圖書館中,背誦他的相關作品,用他的作品學習英語。一年的學習結束后,你走出圖書館,來到了紐約,并向你看到的第一個人打了聲招呼:“嗨,愿光明與你同在!” 那人用奇怪的眼光看著你,嘴里嘟囔著“神經病”。你故作鎮定地又試了一遍:“親愛的夫人,今天是何等的優雅呢?” 你再次收獲了失敗,還把那個人嚇跑了。當你三次嘗試都失敗后,你心煩意亂的說道:“啊,此乃何等之遺憾,何等之悲傷!”確實很遺憾,因為你犯下了一個建模當中最基礎的錯誤之一:對訓練集的過度擬合。
在數據科學學科中, 過度擬合(overfit)模型被解釋為一個從訓練集(training set)中得到了高方差(variance)和低偏差(bias),導致其在測試數據中得到低泛化(generalization)的模型。為了更好地理解這個復雜的定義,我們試著將它理解為去嘗試學習英語的過程。我們要構建的這一模型代表了如何用英語交流。把莎士比亞的所有作品作為訓練數據,把在紐約的對話作為測試集(testing set)。如果我們把社會認可程度來衡量這一模型的表現的話,那么事實表明我們的模型將不能夠有效推廣到測試集上。但是,模型中的方差和偏差又是什么呢?
方差可以理解為為了響應訓練集時模型所產生的變化。若我們只是單純的去記憶訓練集,我們的模型將具有高方差:它高度取決于訓練集數據。如果我們讀的所有作品來自J.K. 羅琳 而不是莎士比亞, 這個模型將變得完全不同。當這樣一個具有高方差的模型應用到一個新的測試集上時,這個模型將無法獲得很好的表現。因為在沒有訓練集數據的情況下模型將迷失方向。就好比一個學生只是單純復習了教科書上列出的問題,但這卻無法幫助他解決一些實際的問題。
偏差(bias),作為與方差相對的一個概念,表示了我們基于數據所做出的假設的強度(有效性)。在前文我們嘗試學習英語的例子中,我們基于一個沒有初始化的模型?,并把作家的作品當作學習語言的教科書。低偏差看似是一個正向的東西,因為我們可能會有這樣的想法:我們并不需要去帶著傾向性思維看待我們的數據。然而我們卻需要對數據表達的完整性持懷疑態度。因為任何自然處理流程都會生成噪點,并且我們無法自信地保證我們的訓練數據涵蓋了所有這些噪點。所以我們在開始學習英語之前需要明白,我們無法通過死記硬背莎士比亞的名著來熟練掌握英語。
總體來說,偏差關系到數據被忽略的程度,而方差則關系到模型和數據的依賴程度。在所有的建模過程中,偏差和方差之間永遠存在著一個權衡問題,并且需要我們針對實際情況找到一個最佳的平衡點。偏差和方差這兩個概念可應用于任何從簡單到復雜的模型算法,對于數據科學家來說,它們至關重要。
剛才我們了解到了過度擬合的模型具有高方差、低偏差的特點。那么相反的情況:一個低方差、高偏差的模型又會是什么樣呢?這被稱作欠擬合。相較于之前與訓練數據緊密貼合的模型,一個欠擬合模型忽視了從訓練數據中獲得的信息,進而使其無法找到輸入和輸出數據之間的內在聯系。讓我們用之前嘗試學習英語的例子來解釋它,這一次我們試著去對之前我們用到的模型做出一些假設,并且我們改成使用《老友記》全集作為這一次學習英語的訓練數據。為了避免我們之前犯過的錯誤,這次我們提前作出假設:只有那些以最常用的詞--the, be, to, of, and, a—為開頭的句子才是重要的。當學習的時候,我們不去考慮別的句子,并且我們相信這能夠構建更有效的模型。
經過了漫長的訓練后,我們又再一次站在了紐約的大街上。這一次,我們的表現相對好了一點點,但是別人依然無法聽懂我們,最后,我們還是以失敗告終。盡管我們學習到了一些英語知識,并且能夠組織一些數量有限的句子,由于從訓練數據上造成的高偏差,我們無法從中學到英語的基礎結構和語法。雖然這個模型沒有受到高方差帶來的影響,但是相對于之前的嘗試來說,顯得又太矯枉過正,擬合不充分!
對數據的過度關注會導致過度擬合,對數據的忽視又會導致欠擬合,那么我們到底該怎么辦呢?一定有一個能找到最佳平衡點的辦法!值得慶幸的是,在數據科學中,有一個很好的解決方案,叫作“驗證(Validation)”。用上面的例子來說,我們只使用了一個訓練集和一個測試集。這意味著我們無法在實戰前知道我們的模型的好壞。最理想的情況是,我們能夠用一個模擬測試集去對模型進行評估,并在真實測試之前對模型進行改進。這個模擬測試集被稱作驗證集(validation set),是模型研發工作中非常關鍵的部分。
兩次失敗的英語學習過后,我們學聰明了,這一次我們決定使用一個測試集。我們這次同時使用Shakespeare的作品和《老友記》,因為我們從過去的經驗中認識到越多的數據總是能夠改善這個模型。不同的是,在這次訓練結束以后,我們不直接走到街上,我們先找到一群朋友,每周和他們相聚,并以用英語來和他們交談的形式來評估我們的模型。剛開始的第一周,由于我們的英語水平還很差,我們很難融入到對話當中。然而這一切僅僅是被模擬成一個驗證集,每當我們意識到錯誤后,就能夠調整我們的模型。最后,當我們能夠適應并掌控與朋友們的對話練習時,我們相信已經是準備好面對測試集的時候了。于是,我們再一次大膽的走了出去,這一次我們成功了!我們非常適應在真實的情況下和別人交談,這得益于一個非常關鍵的因素:驗證集,是它改善并優化了我們的模型。
英語學習只是一個相對簡易的例子。在眾多真實的數據科學模型中,考慮到在一個驗證集上出現過度擬合的可能性,通常會使用到非常多的驗證集!這樣的解決辦法稱之為交叉驗證(corss-validation),這個方法要求我們將訓練集拆分成多個不同的子集,或者在數據足夠多的條件下來使用多個驗證集。交叉驗證法這一個概念涵蓋著問題的方方面面。現在當你碰到一個和過度擬合 vs. 欠擬合,偏差 vs. 方差這幾個概念有關的問題的時候,你腦海中將會浮現出一個概念框架,這個框架將有助于你去理解并且解決這個問題!
數據科學看似復雜,但它其實都是通過一系列基礎的模塊搭建而成的。其中的一些概念已經在這篇文章中提到過,它們是:
過度擬合:過度依賴于訓練數據
欠擬合:無法獲取訓練數據中的存在的關系
高方差:一個模型基于訓練數據產生了劇烈的變化
高偏差:一個忽視了訓練數據的模型假設
過度擬合和欠擬合造成對測試集的低泛化性
使用驗證集對模型進行校正可以避免實際過程中造成的欠擬合和過度擬合
數據科學和其它科技領域其實與我們的日常生活息息相關。在一些與現實有關的例子的幫助下,我們可以很好地解釋并理解這些概念。一旦我們了解了一個框架,我們就能夠用技術來處理所有的細節,從而解決難題。
-
偏差
+關注
關注
0文章
5瀏覽量
7549 -
機器學習
+關注
關注
66文章
8422瀏覽量
132723 -
方差
+關注
關注
0文章
7瀏覽量
6497
原文標題:機器學習模型初印象:一文區分什么是「過擬合」和「欠擬合」?
文章出處:【微信號:thejiangmen,微信公眾號:將門創投】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論