驗證集和測試集的區別

2021-10-16 19:20:59 字數 1795 閱讀 2031

昨天一直在想驗證集和測試集的問題,越想越迷…

問題是這樣的,大部分網路的訓練都是這麼乙個套路:訓練迭代 n 個 epoch 以後就進行一次驗證,然後網路會輸出在驗證集上的 loss 或者其他評價指標。

所以如果我直接把測試集作為驗證集,不就可以看到每隔 n 個 epoch 模型在測試集上的表現了嘛?而且訓練結束前的最後一次驗證也就相當於測試了,反正驗證集又不會被訓練,這樣還省的做測試了。

*************** 查資料後的一點理解 ***************==

參考文章:

首先驗證集是不參與梯度下降的過程的,所以我想那麼做也是可以,只是和使用驗證集的初衷不一樣了(其實就是沒理解驗證集在幹嘛,還說的那麼好聽 ?)。

驗證集的作用:

使用驗證集是為了 快速調參,也就是用驗證集選擇超引數(網路層數,網路節點數,迭代次數,學習率這些)。另外用驗證集還可以監控模型是否異常(過擬合啦什麼的),然後決定是不是要提前停止訓練。

驗證集的關鍵在於 選擇超引數,我們手動調參是為了讓模型在驗證集上的表現越來越好,如果把測試集作為驗證集,調參去擬合測試集,就有點像作弊了。

而測試集既 不參與引數的學習過程,也 不參與引數的選擇過程,僅僅用於模型評價。

驗證集的正確開啟方式:

驗證集可以看做參與了「人工調參」的訓練過程

一般訓練幾個 epoch 就跑一次驗證看看效果(大部分網路自帶這個功能)

這樣做的第乙個好處是:可以及時發現模型或者引數的問題,比如模型在驗證集上發散啦、出現很奇怪的結果啦(inf)、map不增長或者增長很慢啦等等情況,這時可以及時終止訓練,重新調參或者調整模型,而不需要等到訓練結束。

另乙個好處是驗證模型的泛化能力,如果在驗證集上的效果比訓練集上差很多,就該考慮模型是否過擬合了。同時,還可以通過驗證集對比不同的模型。

昨天一直在想驗證集和測試集的問題,越想越迷…

問題是這樣的,大部分網路的訓練都是這麼乙個套路:訓練迭代 n 個 epoch 以後就進行一次驗證,然後網路會輸出在驗證集上的 loss 或者其他評價指標。

所以如果我直接把測試集作為驗證集,不就可以看到每隔 n 個 epoch 模型在測試集上的表現了嘛?而且訓練結束前的最後一次驗證也就相當於測試了,反正驗證集又不會被訓練,這樣還省的做測試了。

*************** 查資料後的一點理解 ***************==

參考文章:

首先驗證集是不參與梯度下降的過程的,所以我想那麼做也是可以,只是和使用驗證集的初衷不一樣了(其實就是沒理解驗證集在幹嘛,還說的那麼好聽 ?)。

驗證集的作用:

使用驗證集是為了 快速調參,也就是用驗證集選擇超引數(網路層數,網路節點數,迭代次數,學習率這些)。另外用驗證集還可以監控模型是否異常(過擬合啦什麼的),然後決定是不是要提前停止訓練。

驗證集的關鍵在於 選擇超引數,我們手動調參是為了讓模型在驗證集上的表現越來越好,如果把測試集作為驗證集,調參去擬合測試集,就有點像作弊了。

而測試集既 不參與引數的學習過程,也 不參與引數的選擇過程,僅僅用於模型評價。

驗證集的正確開啟方式:

驗證集可以看做參與了「人工調參」的訓練過程

一般訓練幾個 epoch 就跑一次驗證看看效果(大部分網路自帶這個功能)

這樣做的第乙個好處是:可以及時發現模型或者引數的問題,比如模型在驗證集上發散啦、出現很奇怪的結果啦(inf)、map不增長或者增長很慢啦等等情況,這時可以及時終止訓練,重新調參或者調整模型,而不需要等到訓練結束。

另乙個好處是驗證模型的泛化能力,如果在驗證集上的效果比訓練集上差很多,就該考慮模型是否過擬合了。同時,還可以通過驗證集對比不同的模型。

訓練集 驗證集 測試集的作用和區別

簡單說,訓練集就是用來訓練模型用的,驗證集為了驗證模型的效果,測試集用來最終評測。所以基於這個,那訓練資料的時候,就不要使用驗證集和測試集的相關資訊,包括統計均值方差特徵等,但是驗證集可以在模型訓練過程中進行模型調參,就是手動調一些外部引數,像是epoch learning rate dropout...

訓練集 驗證集 測試集的區別

深度學習模型的引數分為普通引數和超引數 普通引數 在模型訓練的過程中可以被梯度下降所更新的,也就是訓練集所更新的引數。超引數 比如網路層數 網路節點數 迭代次數 學習率等等,這些引數不在梯度下降的更新範圍內。超引數的設定一般是人工根據驗證集來調。訓練集的作用就是通過梯度下降來調整模型的內部普通引數。...

驗證集和測試集

訓練集 學生的課本 學生 根據課本裡的內容來掌握知識。驗證集 作業,通過作業可以知道 不同學生學習情況 進步的速度快慢。測試集 考試,考的題是平常都沒有見過,考察學生舉一反三的能力。大部分網路模型的訓練就是這麼乙個套路 訓練迭代n個epoch以後就進行一次驗證,然後網路會輸出在驗證集上的loss或者...