1. 深度學習中測試數據跟驗證數據的區別是什麼我不太理解驗證數據是干什麼的
通常在深度學習中將數據集劃分為訓練集、驗證集和測試集。訓練數據是用來訓練神經網路模型的數據,驗證數據的作用是:在神經網路訓練的過程中不斷測試模型的誤差,驗證數據的誤差隨著神經網路模型訓練的次數增加會呈現先減小後增加的數據,所以驗證數據的誤差會存在一個拐點,當達到這個拐點時停止神經網路的訓練,這時得到的神經網路的誤差最小。而測試數據就是用來在神經網路訓練完畢的時候測試模型的誤差的數據。
再通俗易懂的舉例形容如下
訓練集:相當於教材或例題,訓練集在我們的模型過程中起的作用就是更新模型的參數,用以獲得更好的性能,其行為表現就是讓我們以為模型掌握了相關的知識(規律)。
驗證集:相當於模擬考試,只是你調整自己狀態的指示器,這種調整的結果(從模擬考到高考),有可能更好,也有可能更糟糕。驗證集的存在是為了從一堆可能的模型中,幫我們選出表現最好的那個,可用來選超參數。
測試集:相當於高考,其特點是一考定終身,不給改的機會。訓練集用來評估模型最終的性能;當多個模型進行對比試驗驗證模型性能時,多個模型應該在相同的測試集上面進行對比,這樣才有效。就好比甲做A地區的卷子考了600分,乙做B地區的卷子考了590分,能不能說甲比乙成績高,答案是不能。此外,請勿對測試數據進行訓練。 如果評估指標取得了意外的好結果,則可能表明不小心對測試集進行了訓練。例如,高准確率可能表明測試數據泄露到了訓練集。
另:常見的劃分原則有交叉驗證法、留出法。