臺灣大學林軒田機器學習基石課程學習筆記13 -- Hazard of Overfitting

2021-03-02 AI有道

上節課我們主要介紹了非線性分類模型,通過非線性變換,將非線性模型映射到另一個空間,轉換為線性模型,再來進行分類,分析了非線性變換可能會使計算複雜度增加。本節課介紹這種模型複雜度增加帶來機器學習中一個很重要的問題:過擬合(overfitting)。

一、What is Overfitting?

‍‍首先,我們通過一個例子來介紹什麼bad generalization。假設平面上有5個點,目標函數f(x)是2階多項式,如果hypothesis是二階多項式加上一些小的noise的話,那麼這5個點很靠近這個hypothesis,Ein很小。如果hypothesis是4階多項‍‍‍‍式,那麼這5點會完全落在hypothe‍‍sis上,Ein=0。雖然‍‍4階hypothesis‍‍的Ein‍‍比2階h‍‍‍‍ypothesis的要好很多,但是‍‍它的Eout很大‍‍。因為根據VC Bound理論,階數越大,即VC Dimension越大,就會讓模型複雜度更‍‍高,Eout更‍‍大。我們把這種Ein很‍‍小,Eout很大的‍‍情況稱之為bad generation,即泛化能力差。‍‍

我們回過頭來看一下VC曲線:

‍‍hypothesis的階數越高,表示VC Dimension越大。隨著VC Dimension增大,Ein是一直減小的,而Eout‍‍先減小後增大。‍‍在位置,Eout取得最小值。在右側,隨著VC Dimension越來越大,Ein越來越小,接近於0,Eout越來越大。即當VC Dimension很大的時候,這種對訓練樣本擬合過分好的情況稱之為過擬合(overfitting)。另一方面,在左側,隨著VC Dimension越來越小,Ein和Eout都越來越大,這種情況稱之為欠擬合(underfitting),即模型對訓練樣本的擬合度太差,VC Dimension太小了。

bad generation和overfitting的關係可以理解為:overfitting是VC Dimension過大的一個過程,bad generation是overfitting的結果。

‍‍一個好的fit,Ein‍‍和Eout都比‍‍‍‍‍‍較小,盡‍‍管Ein沒有足‍‍夠接近零;而對overfitting來說‍‍,Ein≈0,‍‍但是Eout很大。‍‍‍‍那麼,overfitting的原因有哪些呢?‍‍

我們舉個開車的例子,把發生車禍比作成overfitting,那麼造成車禍的原因包括:

車速太快(VC Dimension太大);

道路崎嶇(noise);

對路況的了解程度(訓練樣本數量N不夠);

也就是說,VC Dimension、noise、N這三個因素是影響過擬合現象的關鍵。

二、The Role of Noise and Data Size

為了儘可能詳細地解釋overfitting,我們進行這樣一個實驗,試驗中的數據集不是很大。首先,在二維平面上,一個模型的分布由目標函數f(x)(x的10階多項式)加上一些noise構成,下圖中,離散的圓圈是數據集,目標函數是藍色的曲線。數據沒有完全落在曲線上,是因為加入了noise。

然後,同樣在二維平面上,另一個模型的分布由目標函數f(x)(x的50階多項式)構成,沒有加入noise。下圖中,離散的圓圈是數據集,目標函數是藍色的曲線。可以看出由於沒有noise,數據集完全落在曲線上。

現在,有兩個學習模型,一個是2階多項式,另一個是10階多項式,分別對上面兩個問題進行建模。首先,對於第一個目標函數是10階多項式包含noise的問題,這兩個學習模型的效果如下圖所示:

‍‍由上圖可知,2階多項式的學習模型Ein=0.0‍‍50‍‍,Eout=0.127;‍‍‍‍10階多項式的學習模‍‍型Ein=0.03‍‍4‍‍,Eout=9.00。雖‍‍‍‍然10階模‍‍型的Ein比‍‍2階的小,但是其Eout要比‍‍2階的大得多,‍‍而2階的Ein‍‍和Eout相差‍‍不大,‍‍很明顯用10階的模型發生了過擬合。‍‍

然後,對於第二個目標函數是50階多項式沒有noise的問題,這兩個學習模型的效果如下圖所示:

‍‍由上圖可知,2階多項式的學習模型Ein=0.0‍‍29‍‍,Eout=0.120;‍‍‍‍10階多項式的學習‍‍模型Ein=0.000‍‍01‍‍,Eout=7680。雖‍‍‍‍然10階模型‍‍的EEin比2階‍‍的小,但是其Eout要比‍‍2階的大得多的多,而2階‍‍的Ein‍‍‍‍和Eout相差‍‍不大,很明顯用10階的模型仍然發生了明顯的過擬合。‍‍

上面兩個問題中,10階模型都發生了過擬合,反而2階的模型卻表現得相對不錯。這好像違背了我們的第一感覺,比如對於目標函數是10階多項式,加上noise的模型,按道理來說應該是10階的模型更能接近於目標函數,因為它們階數相同。但是,事實卻是2階模型泛化能力更強。這種現象產生的原因,從哲學上來說,就是「以退為進」。有時候,簡單的學習模型反而能表現的更好。

下面從learning curve來分析一下具體的原因,learning curve‍‍描述的是Ein和Eout隨‍‍著數據量N的變化趨勢。下圖中左邊是2階學習模‍‍型的learning curve,右邊是10階學習模型的learning curve。

我們的第9次課的筆記《NTU林軒田機器學習基石課程學習筆記9 – Linear Regression》已經介紹過了learning curve。在learning curve中,橫軸是樣本數量N,縱軸是E‍‍rror。Ein和Eout‍‍可表示為:‍‍

其中d為模型階次,左圖中d=2,右圖中d=10。

‍‍本節的實驗問題中,數據量N不大,即對應於上圖中的灰色區域。左圖的灰色區域中,因為d=2,Ein‍‍和Eout相‍‍對來說比較接近;右圖中的灰色區域中,d=10,‍‍根據Ein和‍‍Eout的表達‍‍式,Ein很小,‍‍‍‍而Eout很‍‍大。這就解釋了之前2階多項式模‍‍型的Ein更接‍‍近Eout,泛化‍‍能‍‍力更好。‍‍

值得一提的‍‍是,如果數據量N很大的時候,上面兩圖中Ein和Eout都比較‍‍接近,但是對於高階模型,z域中的特徵很多的時候,需要的樣本數量N很大,且容易發生維度災難。關於維度災難的詳細生動解釋,請參考公眾號另一篇博文《機器學習中的維度災難》。

另一個例子中,目標函數是50階多項式,且沒有加入noise。這種情況下,我們發現仍然是2階的模型擬合的效果更好一些,明明沒有noise,為什麼是這樣的結果呢?

實際上,我們忽略了一個問題:這種情況真的沒有noise嗎?其實,當模型很複雜的時候,即50階多項式的目標函數,無論是2階模型還是10階模型,都不能學習的很好,這種複雜度本身就會引入一種『noise』。所以,這種高階無noise的問題,也可以類似於10階多項式的目標函數加上noise的情況,只是二者的noise有些許不同,下面一部分將會詳細解釋。

三、Deterministic Noise

下面‍‍我們介紹一個更細節的實驗來說明 什麼時候小心overfit會發生。假設我們產生的數據分布由兩部分組成:第一部分是目標函數f(x),Qf階多項式;第二部分‍‍是噪聲ϵ,‍‍服從Gaussian分布。接下來我們分析的是noise強度不同對overfitting有什麼樣的影響。總共的數據量是N。‍‍

那麼‍‍下面我們分析不同的(N,σ2)(N,σ2)和(N,Qf)‍‍對overfit的影響。overfit可以量化‍‍為Eout−Ein。結果如下:‍‍‍‍

‍‍上圖中,紅色越深,代表overfit程度越高,藍色越深,代表overfit程度越低。先看左邊的圖,左圖中階數Qf固定為20,橫坐標代表樣本數量N,縱坐標代表噪聲水‍‍平σ^2‍‍。紅色區域集中在N很小或‍‍者σ^2‍‍很大的時候,也就是說N越大,σ^2越小,越不容易發生overfit。右邊圖中σ^2=0.1,橫坐標代表樣本數量N,縱坐標代表目標函數‍‍階數Qf‍‍。紅色區域集中在N很小或‍‍者Qf很‍‍大的時候,也就是說N越大‍‍,Qf越小‍‍,越不容易發生overfit。上面兩圖基本相似。‍‍

從‍‍上面的分析,我們發現σ^2對overfit是有很大的影響的,我們把這種noise稱之為stochastic noise。同樣地,Qf即模型複雜度也對overfit有很大影響,而且二者影響是相似的,所以我們把這種稱之為deterministic noise。之所以把它稱為noise,是因為模型高複雜度帶來的影響。‍‍

總結一下,有四個因素會導致發生overfitting:

我們剛才解釋了如果目標函數f(x)的複雜度很高的時候,那麼跟有noise也沒有什麼兩樣。因為目標函數很複雜,那麼再好的hypothesis都會跟它有一些差距,我們把這種差距稱之為deterministic noise。deterministic noise與stochastic noise不同,但是效果一樣。其實deterministic noise類似於一個偽隨機數發生器,它不會產生真正的隨機數,而只產生偽隨機數。它的值與hypothesis有關,且固定點x的deterministic noise值是固定的。

四、Dealing with Overfitting

現在我們知道了什麼是overfitting,和overfitting產生的原因,那麼如何避免overfitting呢?避免overfitting的方法主要包括:

start from simple model

data cleaning/pruning

data hinting

regularization

validataion

這幾種方法類比於之前舉的開車的例子,對應如下:

regularization和validation我們之後的課程再介紹,本節課主要介紹簡單的data cleaning/pruning和data hinting兩種方法。

data cleaning/pruning就是對訓練數據集裡label明顯錯誤的樣本進行修正(data cleaning),或者對錯誤的樣本看成是noise,進行剔除(data pruning)。data cleaning/pruning關鍵在於如何準確尋找label錯誤的點或者是noise的點,而且如果這些點相比訓練樣本N很小的話,這種處理效果不太明顯。

data hinting是針對N不夠大的情況,如果沒有辦法獲得更多的訓練集,那麼data hinting就可以對已知的樣本進行簡單的處理、變換,從而獲得更多的樣本。舉個例子,數字分類問題,可以對已知的數字圖片進行輕微的平移或者旋轉,從而讓N豐富起來,達到擴大訓練集的目的。這種額外獲得的例子稱之為virtual examples。但是要注意一點的就是,新獲取的virtual examples可能不再是iid某個distribution。所以新構建的virtual examples要儘量合理,且是獨立同分布的。

五、總結

本節課主要介紹了overfitting的概念,‍‍即當Ein很小‍‍,Eout很大的‍‍時候,會出現overfitting。詳細介紹了overfitting發生的四個常見原因data size N、stochastic noise、deterministic noise和excessive power。解決overfitting的方法有很多,本節課主要介紹了data cleaning/pruning和data hinting兩種簡單的方法,之後的課程將會詳細介紹regularization和validataion兩種更重要的方法。

歡迎關注公眾號學習交流~


相關焦點

  • 臺灣大學林軒田機器學習基石課程學習筆記1 -- The Learning Problem
    最近在看NTU林軒田的《機器學習基石》課程,個人感覺講的非常好。整個基石課程分成四個部分:每個部分由四節課組成,總共有16節課。
  • 【本站原創】臺大林軒田《機器學習基石》系列課程教材的習題解答和實現
    臺灣大學林軒田老師的《機器學習基石》、《機器學習技法》課程由淺入深、內容全面,基本涵蓋了機器學習領域的很多方面。
  • 獨家乾貨 | 林軒田機器學習課程精煉筆記!
    點擊上方「AI有道」,選擇「星標」公眾號重磅乾貨,第一時間送達臺灣大學林軒田老師曾在coursera上開設了兩門機器學習經典課程:《機器學習基石》和《機器學習技法》。《機器學習基石》課程由淺入深、內容全面,基本涵蓋了機器學習領域的很多方面。其作為機器學習的入門和進階資料非常適合。《機器學習技法》課程主要介紹了機器學習領域經典的一些算法,包括支持向量機、決策樹、隨機森林、神經網絡等等。林老師的教學風格也很幽默風趣,總讓讀者在輕鬆愉快的氛圍中掌握知識。本文列出了林軒田機器學習基石和機器學習技法課程的所有精煉筆記,均是紅色石頭精心製作的原創內容。
  • ​機器學習基石 - (林軒田主講)課程學習
    機器學習 - 林軒田臺灣大學-林軒田老師的機器學習課程課程有點小難度,但是是從另外一個角度來闡述機器學習,很有意思!
  • 臺灣大學林軒田機器學習基石課程學習筆記9 -- Linear Regression
    一、線性回歸問題在之前的Linear Classification課程中,講了信用卡發放的例子,利用機器學習來決定是否給用戶發放信用卡。本節課仍然引入信用卡的例子,來解決給用戶發放信用卡額度的問題,這就是一個線性回歸(Linear Regression)問題。
  • 林軒田《機器學習基石》課程總結
    公眾號發布了一系列臺灣大學資訊工程系林軒田(Hsuan-Tien Lin)教授開設的《機器學習基石》
  • 林軒田機器學習基石課程學習筆記1 -- The Learning Problem
    學習就是人類通過觀察、積累經驗,掌握某項技能或能力。就好像我們從小學習識別字母、認識漢字,就是學習的過程。而機器學習(Machine Learning),顧名思義,就是讓機器(計算機)也能向人類一樣,通過觀察大量的數據和訓練,發現事物規律,獲得某種分析問題、解決問題的能力。
  • 機器學習算法可行性(機器學習基石)
    本文是作者學習臺大林軒田教授《機器學習基石》課程後整理的簡要筆記(未按課程回目分節),內容大部分來源於林軒田教授的課程資料,其餘相關參考連結已標出
  • 春節充電系列:李宏毅2017機器學習課程學習筆記19之遷移學習(Transfer Learning)
    春節充電系列:李宏毅2017機器學習課程學習筆記01之簡介春節充電系列:李宏毅2017機器學習課程學習筆記02之Regression春節充電系列:李宏毅2017機器學習課程學習筆記03之梯度下降春節充電系列:李宏毅2017機器學習課程學習筆記04分類(Classification)春節充電系列:李宏毅2017機器學習課程學習筆記05
  • 中國教育最大的問題:Overfitting
    據說,美國加州大學伯克利分校的Jordan教授也要親自來做大會報告。Jordan是該領域的頂級大牛,是美國的三院院士(科學院、工程院和藝術科學院),尤其培養的弟子遍布世界名校,也都各有建樹。我在2009年訪問伯克利的時候,每周幾乎都參加Jordan 組織的Machine Learning Tea的茶會。我的學術水平提高不多,世界各地的茶和茶點倒是品嘗了不少。
  • Overfitting——過猶不及
    一友讀北大管院大數據課程,昨日問起一題,關於數據分析中的overfitting來,與之答惑之後,思之良多,overfitting:過度擬合,亦或是
  • 臺灣大學林軒田機器學習基石課程學習筆記16(完結) -- Three Learning Principles
    這個例子表明,抽樣的樣本會影響到結果,用一句話表示「If the data is sampled in a biased way, learning will produce a similarly biased outcome.」意思是,如果抽樣有偏差的話,那麼學習的結果也產生了偏差,這種情形稱之為抽樣偏差Sampling Bias。
  • 開發者入門必讀:最值得看的十大機器學習公開課
    但因為時間久遠,涉及的一些概念與今天的開發者並沒有太大關聯,更適合需要了解人工智慧來龍去脈的大學師生。這門課程與之類似,能幫助學習者理清機器學習的發展脈絡。它適合計劃進行系統性學習、投入大量時間的人。對於初學者,建議至少聽完吳恩達的機器學習課程之後,再修這一門。4. 臺大林軒田老師的機器學習基石
  • B 站上有哪些值得學習的 AI 課程...
    需要視頻配套資料的可以看看這裡 https://zhuanlan.zhihu.com/p/84214338 這是國內黃博士為吳老師課程配的全套資料,包括視頻字幕,對應 python 代碼,原版 PPT,中文版筆記等等2、林軒田機器學習基石 (國語)https
  • 乾貨|給妹紙的深度學習教學(3)——用VGG19開荒
    it deep and structured (2017,Spring)這門課叫做MLDS,其實就是在講Deep Learning,而且homework非常有意思,有GAN也有RL,關鍵是老師講得確實很好,值得推薦;另外就是李宏毅老師的《一日搞懂深度學習》,其實連結 全都在老師的個人網站上,8月13號在臺北還有他的talk《一日搞懂生成對抗網絡》,同學有報名去聽,我的話,沒錢啊。。
  • 【重溫經典】吳恩達機器學習課程學習筆記七:Logistic回歸
    【導讀】前一段時間,專知內容組推出了春節充電系列:李宏毅2017機器學習課程學習筆記,反響熱烈,由此可見,大家對人工智慧、機器學習的系列課程非常感興趣
  • 通俗化過擬合(overfitting)與 欠擬合(underfitting)
    無論是在機器學習(Machine Learning)還是深度學習(Deep Learning)什麼是過擬合(overfitting)?在表徵線性回歸模型的下面三張圖中,左圖(underfitting)使用一條直線來做預測模型,很明顯無論如何調整起始點和斜率,該直線都不可能很好的擬合給定的五個訓練樣本,更不要說給出的新數據;右圖(overfitting)使用了高階的多項式,過於完美的擬合了訓練樣本,當給出新數據時,很可能會產生較大誤差;而中間的模型(fitting)則剛剛好,既較完美的擬合訓練數據,又不過於複雜,基本上描繪清晰了Size
  • B站最強學習資源匯總(Python,數據科學,機器學習)
    需要視頻配套資料的可以看看這裡https://zhuanlan.zhihu.com/p/84214338這是國內黃博士為吳老師課程配的全套資料,包括視頻字幕,對應python代碼,原版PPT,中文版筆記等等https://www.bilibili.com/video/av12463015/課程介紹:臺灣大學林軒田老師的《機器學習基石》課程由淺入深、內容全面,基本涵蓋了機器學習領域的很多方面。
  • 這裡有一份最新的AI學習資源匯總,你收藏了嗎
    臺灣大學 李宏毅 機器學習 2019 Spring (http://speech.ee.ntu.edu.tw/~tlkagk/courses_ML19.html):  由臺灣大學李宏毅老師開設,有視頻,有作業,並且是中文,比較適合英文不好的小夥伴,同時增加了一些較新的課程,如Meta Learning,Transformer, GAN, BERT等。
  • 李宏毅機器學習完整筆記正式發布
    《LeeML-Notes》李宏毅機器學習筆記3.《LeeML-Notes》學習筆記框架4.筆記內容細節展示a. 對梯度下降概念的解析b. 為什麼需要做特徵縮放c. 隱形馬爾科夫鏈的應用5.代碼呈現a. 回歸分析b.