1. 程式人生 > >臺灣大學林軒田《機器學習基石》學習筆記第15講—— Validation

臺灣大學林軒田《機器學習基石》學習筆記第15講—— Validation

上節課我們引入了augmented error,並學習如何通過加入regularizer來限制model complexity,並求得augmented error的最小值。從開始到現在我們已經學習到很多模型,但究竟哪些模型能得到更好的泛化能力呢?這節課我們將來探討一下這個問題。 一、Model Selection Problem 在這裡插入圖片描述

對於一個簡單的binary classification問題,模型上,我們就有多維的選擇:

  • 演算法A的選擇(PLA、pocket、linear regression…)
  • 迭代次數T的選擇
  • 學習速率η的選擇
  • 特徵轉換feature transform φ的選擇
  • 正則化regularizer的選擇
  • 正則化係數λ的選擇

不同的選擇搭配,有不同的機器學習效果。 在這裡插入圖片描述

  • 我們的目標是找到一個g使得Eout最小,但實際情況是Eout我們並不知道,我們並沒有辦法去衡量Eout究竟是多少。
  • 那究竟如何來選擇這個g呢,或者說是模型? 在這裡插入圖片描述
  • 我們首先想到可以通過Ein來做選擇,只要Ein越小越好,這樣是否可行呢?
  • 我們知道ϕ1126\phi_{1126}找到的Ein往往會比ϕ1\phi_{1}要小,但這個代價會導致嚴重的overfitting,即bad generalization;
  • 那假設我們在幾個不同的Hypothesis set中分別找出最小的Ein再做比較呢?也不行,因為等效的Hypothesis set變大了,d
    vcd_{vc}
    變大,同樣容易導致overfitting,獲得很差的generalization;
  • 所以通過Ein來選擇是不可行的! 在這裡插入圖片描述
  • 那麼通過一個另外的測試資料集DtestD_{test}可行麼?
  • 根據finite-bin Hoffding不等式,只要我們的模型個數M越小,DtestD_{test}數目越大,那麼EtestE_{test}就會越接近EoutE_{out};
  • 但是問題是這樣的DtestD_{test}我們並不好獲得。 在這裡插入圖片描述
  • 既然使用EinE_{in}EtestE_{test}都有自己的侷限性,但其優點分別是找到一個小的E
    inE_{in}
    和使用EtestE_{test}來檢驗generalization,那麼折中一下:
  • 找到一個EvalE_{val},它是通過資料集DvalDD_{val}\subset D,一來DvalD_{val}是我們方便獲取的,二來EvalE_{val}可以用來替代EtestE_{test}
  • 驗證集DvalD_{val}是從訓練集D中抽取並獨立出來的,模型的訓練使用除了DvalD_{val}之外的資料,模型的驗證則使用驗證集DvalD_{val}

二、Validation