[ML] 機器學習基石:第十三講 Hazard of Overfitting

oiML:基礎學習
課程:機器學習基石
簡介:第十三講 Hazard of Overfitting

學習 開車
overfit 車禍
\(d_{VC}\) 過度 開太快
noise 路不平
有限的 data 缺乏觀察路況

範例討論

兩種目標函數如下,分別使用\(H_2\) 跟 \(H_{10}\) 作為比較
可以發現 \(H_2\) 表現都比 \(H_{10}\) 好,即使目標函數同為十次方,為什麼呢?
  • 十次多項式 + noise
    • 如下圖,在灰色區域,\(E_{in}\) 一定是右邊比較好,但\(E_{out}\) 卻是左邊比較好
    • 即使已知十次,再用十次去學習,但當 data 數不夠多時, \(H_2\) 仍是比較好的選擇
  • 五十次多項式
    •  雖然無 noise,但目標本身的複雜度也相當於 noise

細部討論

假設目標函數如下,\(Q_f\) 表示函數為幾次方,\(N\) 為資料大小
那麼 \(N,\sigma ^2, Q_f\) 之間對於 overfit 的關係又是什麼?
$$ y=f(\mathbf{x})+\epsilon \sim Gaussian\left ( \sum_{q=0}^{Q_f}\alpha _q\mathbf{x}^q,\sigma ^2 \right ) $$
圖的值為 \(E_{out}(g_{10})-E_{out}(g_{2})\)
兩種 noise
  • stochasetic noise
    • \(\sigma ^2\) 所產生的
  • deterministic noise
    • 目標的複雜度所產生的

何謂 deterministic noise
如下圖,灰色部分無法被 \(h^*\) 所描述的差距
表現跟 stochasetic noise 很像,像是電腦的隨機亂數,其實也只是複雜的函數
跟 stochasetic noise 的差別為
  • 被 \(H\) 所決定
  • 被 \(\mathbf{x}\) 所決定,為固定值

overfit 增加的原因

  • \(N\) 減少
  • stochastic noise 增加 
  • deterministic noise 增加
  • \(H\) 過度複雜

如何解決 overfit

學習 開車
從簡單的 model 開始 開慢車
data cleaning/pruning
將資料弄準一點
路況資料準一點
data hinting
更多的資料,或從原本資料產生更多新的資料
路況資料多一點
regularizaion 適當的剎車
validation 監測儀錶板

data cleaning/pruning
左上角的叉叉,不像 5 也不像 1
  • data cleaning : 也許是 1,故修正為1
  • data pruning : 直接移除不使用
可能有用,但圈圈的資料夠多的話,不見得會影響學習成果
data hinting
例:下圖旋轉一定的角度,得到更多的資料
可能有用,但必須小心,因加進去的資料可能會導致偏離原本的資料分佈
也就是不再保證為 i.i.d,甚至導致旋轉的圖都學對了,但原本的圖卻是錯的

留言