1. 程式人生 > >Coursera機器學習基石筆記week13

Coursera機器學習基石筆記week13

Hazard of Overfitting

What is Overfitting

在這裡插入圖片描述
hypothesis的階數越高,表示VC Dimension越大。隨著VC Dimension增大, E i n E_{in}

是一直減小的,而 E o u t E_{out} 先減小後增大。在 d
d^*
位置, E o u t
E_{out}
取得最小值。在 d v c d^*vc 右側,隨著VC Dimension越來越大, E i n E_{in} 越來越小,接近於0, E o u t E_{out} 越來越大。即當VC Dimension很大的時候,這種對訓練樣本擬合過分好的情況稱之為過擬合(overfitting)。另一方面,在 d v c d^∗vc 左側,隨著VC Dimension越來越小, E i n E_{in} E o u t E_{out} 都越來越大,這種情況稱之為欠擬合(underfitting),即模型對訓練樣本的擬合度太差,VC Dimension太小了。
在這裡插入圖片描述
bad generation和overfitting的關係可以理解為:overfitting是VC Dimension過大的一個過程,bad generalization是overfitting的結果。

The Role of Noise and DataSize

首先,在二維平面上,一個模型的分佈由目標函式f(x)(x的10階多項式)加上一些noise構成,下圖中,離散的圓圈是資料集,目標函式是藍色的曲線。資料沒有完全落在曲線上,是因為加入了noise。

在這裡插入圖片描述

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

然後我們分別用一個2階多項式和10階多項式來對上面兩個資料集進行擬合,然後對於第一個資料集,產生了如下效果:
在這裡插入圖片描述
可以看出雖然10階多項式的 E i n E_{in} 更好,但是 E o u t E_{out} 比較大了。

然後對於第二個資料集來說:

在這裡插入圖片描述

雖然10階多項式的 E i n E_{in} 變得非常小,但是 E o u t E_{out} 變得卻非常大。
在這裡插入圖片描述
上面兩個問題中,10階模型都發生了過擬合,反而2階的模型卻表現得相對不錯。這好像違背了我們的第一感覺,比如對於目標函式是10階多項式,加上noise的模型,按道理來說應該是10階的模型更能接近於目標函式,因為它們階數相同。但是,事實卻是2階模型泛化能力更強。這種現象產生的原因,從哲學上來說,就是“以退為進”。有時候,簡單的學習模型反而能表現的更好。

從上圖可以看出,對於資料量不夠大的時候,2階多項式的表現好於10階多項式,泛化能力更好

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

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

Deterministic Noise

在這裡插入圖片描述

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

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

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

  • data size N ↓

  • stochastic noise σ 2 σ^2

  • deterministic noise Q f Q_f

  • excessive power ↑

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

Dealing with Overfitting

避免overfitting的方法主要包括:

  • start from simple model
  • data cleaning/pruning
  • data hinting
  • regularization
  • validataion

data cleaning/pruning就是對訓練資料集裡label明顯錯誤的樣本進行修正(data cleaning),或者對錯誤的樣本看成是noise,進行剔除(data pruning)。

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

總結

過擬合的表現就是 E i n E_{in} 很小, E o u t E_{out} 很大。過擬合可能會因為噪聲,資料量,過大的多項式擬合導致的。同時解決過擬合的方法也有很多,主要有start from simple model、data cleaning/pruning、data hinting、regularization、validataion等方法。