訓練集
用於模型擬合的數據樣本,用來調試神經網絡中的參數。
測試集
用來評估模最終模型的泛化能力。但不能作為調參、選擇特征等算法相關的選擇的依據。測試集的作用是體現在測試的過程。
驗證集
用於查看訓練效果,查看模型訓練的效果是否朝着壞的方向進行。驗證集的作用是體現在訓練的過程。舉個栗子:通過查看訓練集和驗證集的損失值隨着epoch的變化關系可以看出模型是否過擬合,如果是可以及時停止訓練,然后根據情況調整模型結構和超參數,大大節省時間。
驗證集和測試集之間的區別
驗證集沒有參與網絡參數更新的工作,按理說也能用來測試網絡的實際學習能力;測試集本來也能就是用來測試效果的,按理來說也能查看訓練效果。
測試集誰能來當
一個形象的比喻:
訓練集-----------學生的課本;學生根據課本里的內容來掌握知識。
驗證集-----------作業;通過作業可以知道不同學生學習情況、進步的速度快慢。
測試集-----------考試;考的題是平常都沒有見過,考察學生舉一反三的能力。
傳統上,一般三者切分的比例是:6:2:2,驗證集並不是必須的。
訓練集直接參與了模型調參的過程,顯然不能用來反映模型真實的能力(防止課本死記硬背的學生擁有最好的成績,即防止過擬合)。
驗證集參與了人工調參(超參數)的過程,也不能用來最終評判一個模型(刷題庫的學生不能算是學習好的學生)。
所以要通過最終的考試(測試集)來考察一個學(模)生(型)真正的能力(期末考試)。
測試集為了具有泛化代表性,往往數據量比較大,所以往往只取測試集的其中一小部分作為訓練過程中的驗證集。當然有的論文中沒有設置驗證集也是可以的。
名詞解釋
超參數:在機器學習中,超參數是在學習過程開始之前設置其值的參數。 相反,其他參數的值是通過訓練得出的。
簡單來說,就是我們在模型開始訓練之前設定好的參數,如batch size,學習率以及有多少個epoch等。
給定這些超參數,訓練算法從數據中學習參數。相同種類的機器學習模型可能需要不同的超參數來適應不同的數據模式,並且必須對其進行調整以便模型能夠最優地解決機器學習問題。 在實際應用中一般需要對超參數進行優化,以找到一個超參數元組(tuple),由這些超參數元組形成一個最優化模型,該模型可以將在給定的獨立數據上預定義的損失函數最小化。