Neural-Networks

如果我在調整超參數時評估驗證數據的模型性能,為什麼會洩露有關驗證數據的信息?

  • December 27, 2018

在 François Chollet 的 Python 深度學習中,它說:

因此,根據模型在驗證集上的性能調整模型的配置會很快導致對驗證集的過度擬合,即使您的模型從未直接在其上進行過訓練。

這種現象的核心是信息洩露的概念。每次根據模型在驗證集上的性能調整模型的超參數時,有關驗證數據的一些信息就會洩漏到模型中。如果您只對一個參數執行一次,那麼很少有信息會洩漏,並且您的驗證集將保持可靠以評估模型。但是,如果您多次重複此操作——運行一個實驗,評估驗證集,然後修改你的模型——那麼你就會將越來越多的關於驗證集的信息洩漏到模型中。

如果我在調整超參數時評估驗證數據的模型性能,為什麼會洩露有關驗證數據的信息?

信息洩露是因為您正在使用驗證數據進行超參數選擇。本質上,您正在創建一個複雜的優化問題:最小化超參數的損失 $ \phi $ 根據驗證數據進行評估,其中這些超參數正則化具有參數的神經網絡模型 $ \theta $ 通過使用特定的訓練集進行訓練。

儘管參數 $ \theta $ 由訓練數據直接通知,超參數 $ \phi $ 是根據驗證數據選擇的。此外,由於超參數 $ \phi $ 隱性影響 $ \theta $ ,來自驗證數據的信息會間接影響您選擇的模型。

引用自:https://stats.stackexchange.com/questions/384703

comments powered by Disqus