這講主要講validation, model selection, cross validation。
-
在之前的課程中Eout等于Ein加上過擬合的懲罰項。 正則化就是在估計過擬合的懲罰項, validation則是直接估計Eout。
versus -
現在估計誤差估計的準確率。 對于一個點來說, 其均值方差就是一種衡量。 那么如果是一個set呢, 均值方差如何變化, 答案是均值不變, 而方差減小了K倍。 可以看出, 用更多的點來估計可以減少我們估計的誤差。
point
set -
我們選擇K個點作為validation set。 根據Eval的式子, K越大估計的誤差越小, 但是由于K是從整個數據集的N個數據點抽離出來的, 會造成Ein變小而Eout變大!
K -
這個圖清晰的展示了validation是如何做的, g是從全部數據點訓練出來的, g-是從訓練集訓練出來的, Dval在g-上面做估計。 validation起到了模型選擇的作用, 當最終確定了模型, 可以把所有的點都拿去訓練。
roadmap -
test set不參與訓練, 是一種無偏差的估計, 而validation set參與了訓練, 是一種有偏估計。 設想有兩個假設h1,h2. 本來它們的Eout都是0.5. 但是有一個在validation set的表現是小于0.5的,我們就會選擇它, 這樣就造成了估計的偏差。
test vs validation -
一個訓練過程就是一個選擇假設空間中的假設的過程, 這種選擇是通過validation set來完成的: 選擇表現最好的。
process -
bias有多大呢, K越大 bias當然越小了, 但是代價是模型誤差非常大。
bias -
三個set的區別。
set -
K的選擇另我們陷入了困境。 為了最終的模型的誤差能逼近Eout, 我們希望用更少的K從而使更多的樣本能參與訓練; 而為了使Eval能逼近訓練出來的模型的誤差, 我們希望K更大。
K -
cross validatoin就是為了解決這個問題的。 其中的一種是leave one out。 每次訓練選擇一個點作為validation set, 訓練N次, 最后取N次訓練的誤差的均值。如下面的例子, 選擇linear還是constant呢, 最終的結果是選擇constant model。
leave one out
selection -
在數字分類的實驗中, 我們通過cross valiation選擇有多少個多項式項。
digit -
更常用的不是leave one out。 而是將樣本劃分為n個partition, 如5折, 10折等等。
partition