機器學習中的驗證集的作用和如何使用

2021-10-01 07:35:00 字數 1218 閱讀 9439

在機器學習或者深度學習中,我們需要了解我們的模型包括什麼:1)模型設計:①模型架構(包括模型有多少層,每層有多少個神經元);②可訓練權重引數(模型內建引數);2)模型訓練的引數(模型外接引數,如學習率、優化策略等等)。這一塊具體大家可以去看一下吳恩達老師機器學習的教程,會有很大收穫的,如圖(截自吳恩達 機器學習教程):

然後我們可以發現什麼,bp演算法可訓練的引數只有什麼東東???對了,只有可訓練的權重引數而已,關於模型的其他引數的設定呢,顯然沒法做到,顯然我們的模型並不只有這一部分,因此我們怎麼來確定呢其他引數呢?答案就是驗證集,即設定驗證集我們可以進行模型選擇。

為什麼非要是驗證集而不是測試集呢?答案是測試集是為了測試模型的泛化效能,如果用測試集來進行超參的選擇,那麼這個模型將會很擬合這個測試集,導致測試集的存在失去了它自身的意義—泛化模型,因此,我們設定了驗證集來完成這一部分的工作而不是測試集!!!

了解了使用驗證集我們可以進行模型超引數的選擇,那麼我們如何運用驗證集來進行模型選擇呢?如下:(截自深度學習的驗證集怎麼用?)

模型的引數包括普通引數和超引數(與模型設計和訓練有關的一些引數),利用bp只能訓練普通引數,而無法「訓練」模型的超引數,因此,我們設定了驗證集,通過驗證集的效果進行反饋,根據效果看是否需要終止當前的模型訓練,更改超參之後再訓練,最終得到最優的模型!

ps:

1)針對超參的選擇我們是根據驗證集上的效果來進行調整的,因此驗證集可以看做參與到「人工調參」的訓練過程;

2)注意訓練集、驗證集和測試集應該服從同一資料分布,這樣我們才能進行玄學調參;

3)測試集是可以沒有的,但驗證集是必須有的,如果驗證集具有足夠的泛化代表性,是可以不需要設定測試集的;注意測試集的存在只是為了驗證我們在訓練集和驗證集上進行模型的超參和引數訓練後,驗證我們得到的模型是否具有泛化效能!

更多:

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

tensorflow:訓練集、測試集、驗證集

深度學習: 驗證集 & 測試集 區別

訓練集(train set) 驗證集(validation set) 測試集(test set)

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

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

通常,在訓練有監督的機器學習模型的時候,會將資料劃分為訓練集 驗證集合測試集,劃分比例一般為0.6 0.2 0.2。對原始資料進行三個集合的劃分,是為了能夠選出效果 可以理解為準確率 最好的 泛化能力最佳的模型。訓練集 training set 作用是用來擬合模型,通過設定分類器的引數,訓練分類模型...

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

通常,在訓練有監督的機器學習模型的時候,會將資料劃分為訓練集 驗證集和測試集,劃分比例一般為0.6 0.2 0.2 對原始資料進行三個集合的劃分,是為了能夠選出效果 可以理解為準確率 最好的 泛化能力最佳的模型。訓練集 training set 作用是用來擬合模型,通過設定分類器的引數,訓練分類模型...

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

通常,在訓練有監督的機器學習模型的時候,會將資料劃分為訓練集 驗證集合測試集,劃分比例一般為0.6 0.2 0.2。對原始資料進行三個集合的劃分,是為了能夠選出效果 可以理解為準確率 最好的 泛化能力最佳的模型。訓練集 training set 作用是用來擬合模型,通過設定分類器的引數,訓練分類模型...