機器學習中的訓練集 驗證集 測試集

2021-10-14 23:05:31 字數 1542 閱讀 6882

訓練集用來訓練模型,即確定模型的權重和偏置這些引數,通常我們稱這些引數為學習引數。

而驗證集用於模型的選擇,更具體地來說,驗證集並不參與學習引數的確定,也就是驗證集並沒有參與梯度下降的過程。驗證集只是為了選擇超引數,比如網路層數、網路節點數、迭代次數、學習率這些都叫超引數。比如在k-nn演算法中,k值就是乙個超引數。所以可以使用驗證集來求出誤差率最小的k。

超引數,就是機器學習模型裡面的框架引數,比如聚類方法裡面類的個數,或者話題模型裡面話題的個數等。它們跟訓練過程中學習的引數(權重)是不一樣的,通常是手工設定,不斷試錯調整,或者對一系列窮舉出來的引數組合一通列舉(叫做網格搜尋)。

常用的超引數:

learning rate

學習率決定了權值更新的速度,設定得太大會使結果超過最優值,太小會使下降速度過慢。學習率是指在優化演算法中更新網路權重的幅度大小。學習率可以是恆定的、逐漸降低的、基於動量的或者是自適應的,採用哪種學習率取決於所選擇優化演算法的型別,如sgd、adam、adgrad、adadelta、rmsprop等演算法。

weight decay(權值衰減)

在實際應用中,為了避免網路的過擬合,必須對價值函式(cost function)加入一些正則項。在機器學習或者模式識別中,會出現overfitting,而當網路逐漸overfitting時網路權值逐漸變大,因此,為了避免出現overfitting,會給誤差函式新增乙個懲罰項,常用的懲罰項是所有權重的平方乘以乙個衰減常量之後。其用來懲罰大的權值。weight decay的使用既不是為了提高收斂精確度也不是為了提高收斂速度,其最終目的是防止過擬合。在損失函式中,weight decay是放在正則項(regularization)前面的乙個係數,正則項一般指示模型的複雜度,所以weight decay的作用是調節模型複雜度對損失函式的影響,若weight decay很大,則複雜的模型損失函式的值也越大。

momentum(動量)

動量**於牛頓定律,基本思想是為了找到最優加入」慣性」的影響。mementum是梯度下降法中一種常用的加速技術。總能得到更好的收斂速度。

learing rate decay

每次迭代的時候減少學習率的大小。

迭代次數

迭代次數是指整個訓練集輸入到神經網路進行訓練的次數。當測試錯誤率和訓練錯誤率相差較小時,可認為當前的迭代次數是合適的,否則需繼續增大迭代次數,或調整網路結構。

權重初始化

在網路中,通常會使用小隨機數來初始化各網路層的權重,以防止產生不活躍的神經元,但是設定過小的隨機數可能生成零梯度網路。一般來說,均勻分布方法效果較好。

dropout方法

作為一種常用的正則化方式,加入dropout層可以減弱深層神經網路的過擬合效應。該方法會按照所設定的概率引數,在每次訓練中隨機地不啟用一定比例的神經單元。該引數的預設值為0.5.

測試集只使用一次,即在訓練完成後評價最終的模型時使用。它既不參與學習引數過程,也不引數超引數選擇過程,而僅僅使用於模型的評價。

值得注意的是,千萬不能在訓練過程中使用測試集,而後再用相同的測試集去測試模型。這樣做其實是乙個cheat,使得模型測試時準確率很高。

深度學習中的驗證集和超引數簡介

交叉驗證與訓練集、驗證集、測試集

機器學習 訓練集 驗證集 測試集

為什麼要將資料集分為訓練集 驗證集 測試集三部分?對於很多機器學習的初學者來說,這個問題常常令人很迷惑,特別是對於驗證集和測試集的區別更讓人摸不到頭腦。下面,我談一下這三個資料集的作用,及必要性 訓練集 顯然,每個模型都需要訓練集,訓練集的作用很明顯,就是直接參與模型的訓練過程。測試集 測試集完全不...

機器學習中的訓練集 驗證集 測試集

用來訓練分類器中的引數,擬合模型。會使用超引數的不同取值,擬合出多個分類器,後續再結合驗證集調整模型的超引數。當通過訓練集訓練出多個模型後,為了能找出效果最佳的模型,使用各個模型對驗證集資料進行 並記錄模型準確率。選出效果最佳的模型所對應的超引數,即用來調整模型超參。通過訓練集和驗證集得出最優模型後...

機器學習的訓練集 驗證集和測試集

在機器學習中,最佳的資料分類情況是把資料集分為三部分,分別為 訓練集 train set 驗證集 validation set 和測試集 test set 訓練集很好理解就是訓練我們的模型。那麼驗證集和測試集有什麼作用?首先需要了解的是在乙個機器學習模型中,模型的引數分為普通引數和超引數,普通引數比...