簡體   English   中英

NN訓練中過擬合的困境

[英]The dilemma of overfitting in NN training

我的問題是另一個用戶提出的問題的延續: 神經網絡中的訓練、驗證和測試集之間有什么區別?

通過查看驗證和訓練集性能(使用 Matlab 中的nntool框很容易做到這nntool ),通過在達到最小 MSE 時終止學習結束,然后如果看不見的測試集的性能nntool ,則使用經過訓練的net結構與訓練集相比,我們存在過擬合問題。 我總是遇到這種情況,即使在學習過程中選擇了與驗證和訓練集對應的參數具有幾乎相同的性能的模型。 那為什么測試集的性能比訓練集差呢?

訓練數據= 我們用來訓練模型的數據。

驗證數據= 我們用於在每個時期或運行時測試我們的模型的數據,以便我們可以提前手動停止我們的模型,因為過度擬合或任何其他模型。 現在假設我在我的模型上運行了 1000 個 epoch,並且在 500 個 epoch 上我認為我的模型在訓練數據上給出了 90% 的准確率,在驗證數據上給出了 70% 的准確率。 現在我可以看到我的模型過度擬合了。 我可以手動停止我的訓練,並在 1000 個 epoch 完成之前調整我的模型,而不是看到行為。

測試數據= 現在在計算了 1000 個 epoch 后完成了我的模型訓練。 我將預測我的測試數據並查看測試數據的准確性。 它的給予 86%

我的訓練准確度是 90% 驗證准確度是 87%,測試准確度是 86%。 這可能會有所不同,因為驗證集、訓練集和測試集中的數據完全不同。 我們在訓練集中有 70% 的樣本,10% 的驗證和 20% 的測試集。 現在在我的驗證中,我的模型正確預測了 8 個圖像,並在測試我的模型正確預測了 100 個圖像中的 18 個圖像。這在現實生活項目中是正常的,因為每個圖像中的像素與另一個圖像不同,這就是為什么可能會發生一些差異的原因。

在測試集中,他們的圖像比驗證集多,這可能是一個原因。 因為圖像越多,錯誤預測的風險就越大。 例如,在 90% 的准確度上,我的模型正確預測了 100 個中的 90 個,但是如果我將圖像樣本增加到 1000 個,那么我的模型可能會正確預測(850、800 或 900)個圖像

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM