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

Coursera機器學習基石筆記week15

Validation

Model Selection Problem

在這裡插入圖片描述

針對模型建立的過程,如上圖所示,不僅需要考慮演算法的選擇,還要考慮迭代次數,學習速率,特徵轉換,正則化,正則化係數的選擇等等,不同的搭配,都有不同的機器學習效果。那麼我們應該如何找一個最合適的搭配呢?

首先我們考慮通過找一個最好 E i n

E_{in} 來選擇模型。

在這裡插入圖片描述

但是相對來說, E i n E_{in}

小的模型總是偏向於使用較大指數的特徵以及儘量小的正則化,但是這又容易導致過擬合。而且假如每一種模型選擇+訓練會使模型複雜度變得比較高,從而使泛化能力變得比較差。

另外一種方法,如果有這樣一個獨立於訓練樣本的測試集,將M個模型在測試集上進行測試,看一下 E t e s

t E_{test} 的大小,則選取 E t e s t E_{test} 最小的模型作為最佳模型:

在這裡插入圖片描述

在這裡插入圖片描述

但是,我們拿到的都是訓練集D,測試集是拿不到的。所以,尋找一種折中的辦法,我們可以使用已有的訓練集D來創造一個驗證集validation set,即從D中劃出一部分 D v a l D_{val} 作為驗證集。D另外的部分作為訓練模型使用, D v a l D_{val} 獨立開來,用來測試各個模型的好壞,最小化 E v a l E_{val} ,從而選擇最佳的 g m g_{m^∗}

在這裡插入圖片描述

Validation

從訓練集D中抽出一部分K個數據作為驗證集 D v a l D_{val} D v a l D_{val} 對應的error記為 E v a l E_{val} 。這樣做的一個前提是保證 D v a l D_{val} 獨立同分布(iid)於P(x,y),也就是說 D v a l D_{val} 的選擇是從D中平均隨機抽樣得到的,這樣能夠把 E v a l E_{val} E o u t E_{out} 聯絡起來。D中去除 D v a l D_{val} 後的資料就是供模型選擇的訓練資料 D t r a i n D_{train} ,其大小為N-k。從 D t r a i n D_{train} 中選擇最好的g,記為 g m g^−_m

在這裡插入圖片描述

假如D共有1000個樣本,那麼可以選擇其中900個 D t r a i n D_{train} ,剩下的100個作為 D v a l D_{val} 。使用 D t r a i n D_{train} 訓練模型,得到最佳的 g m g^−_m ,使用 g m g^−_m D v a l D_{val} 進行驗證,得到如下Hoffding不等式:

E o u t ( g m ) E v a l ( g m ) + O ( l o g M K ) E_{out}(g^-_m)\leq E_{val}(g^-_m)+O(\sqrt\frac{logM}{K})

假設有M種模型hypothesis set, D v a l D_{val} 的數量為K,那麼從每種模型m中得到一個在 D v a l D_{val} 上表現最好的g,再橫向比較,從M個g中選擇一個最好的 m m^∗ 作為我們最終得到的模型。

在這裡插入圖片描述

根據之前的leraning curve很容易知道,訓練樣本越多,得到的模型越準確,其hypothesis越接近target function,即D的 E o u t E_{out} D t r a i n D_{train} E o u t E_{out} 要小.
在這裡插入圖片描述
所以,我們通常的做法是通過 D v a l D_{val} 來選擇最好的矩 g m g^−_{m^∗} 對應的模型 m m^∗ ,再對整體樣本集D使用該模型進行訓練,最終得到最好的矩 g m g_{m^∗}
在這裡插入圖片描述
如上圖所示,我們先把資料集分為 D t r a i n D_{train} D v a l D_{val}