# 1. 訓練集與驗證集 資料集通常分為三部分: 1.訓練集 $D_{train}$:用來訓練模型參數。 2.驗證集 $D_{val}$:用來選擇最佳模型或調整超參數。 3.測試集 $D_{test}$:完全不參與訓練與選擇,用來評估最終模型的泛化能力。 # 2. 使用驗證集選擇最佳模型的陷阱 假設有三組模型集合 $\mathcal{H}_1$、$\mathcal{H}_2$ 和 $\mathcal{H}3$。在訓練集 $D{train}$ 上,分別找出每個集合中表現最好的模型: $h_1^* = \arg\min_{h \in \mathcal{H}1} L(h, D{train})$。 $h_2^* = \arg\min_{h \in \mathcal{H}2} L(h, D{train})$。 $h_3^* = \arg\min_{h \in \mathcal{H}3} L(h, D{train})$。 接著,用驗證集 $D_{val}$ 來評估每個 $h_i^*$ 的表現: $L(h_1^*, D_{val}) = 0.9$。 $L(h_2^*, D_{val}) = 0.7$。 $L(h_3^*, D_{val}) = 0.5$。 從上述三個模型中選擇在驗證集上表現最好的模型。這個行為其實是: 1.定義驗證集上的候選模型集合為 $\mathcal{H}_{val} = { h_1^, h_2^, h_3^* }$ 2.選出最小驗證損失的模型:$h^* = \arg\min_{h \in \mathcal{H}{val}} L(h, D{val})$ 雖然驗證集沒有直接用來訓練模型參數,但這種「選模型」的行為其實也讓驗證集變成了一部分 的「訓練過程」。因此對驗證集也產生 overfitting。 ## 2.1 補充數學解釋:驗證集過擬合的機率界限 【1】 根據 Hoeffding 不等式,假設空間為 $\mathcal{H}$,則從其中選出一個在訓練集 $D_{train}$ 上表現良好的假設,其實際泛化誤差偏離期望的機率具有以下上界: $P(D_{train} \text{ is bad}) \leq |\mathcal{H}| \cdot 2\exp(-2N\varepsilon^2)$。 其中,$N$ 為訓練資料的樣本數,$\varepsilon$ 為允許的誤差容忍度。 【2】 若使用驗證集 $D_{val}$ 作為模型選擇依據,相當於從一個新的假設集合 $\mathcal{H}{val}$ 中選取一個模型,則驗證集產生選擇錯誤的機率上界為: $P(D{val} \text{ is bad}) \leq |\mathcal{H}{val}| \cdot 2\exp(-2N{val}\varepsilon^2)$。 其中,$|\mathcal{H}{val}|$ 表示驗證階段參與比較的模型數量,$N{val}$ 為驗證集樣本數。 【3】 驗證集的可靠性受到 $|\mathcal{H}_{val}|$ 影響,若此值過大,即代表驗證集被反覆使用於模型挑選,則即使驗證集本身未直接用於參數訓練,其仍有可能被過度擬合,導致選擇出的模型在測試集上表現不佳。 # 3. 解決過擬合驗證集的方法 1.保留一組從未參與模型訓練與選擇的測試集 $D_{test}$,專門用來最終評估泛化能力。 2.若驗證集使用次數過多,建議使用交叉驗證(Cross-Validation)來減少對單一驗證集的依賴。 3.建立正確的資料分割流程,確保模型評估公平可信。 驗證集的主要目的是協助我們選擇表現最佳的模型,但若過度依賴其結果進行反覆調整,就會出現過擬合風險。因此,為了確保模型真正具備泛化能力,應當保留獨立測試集,並審慎使用驗證集做決策。
×
Sign in
Email
Password
Forgot password
or
By clicking below, you agree to our
terms of service
.
Sign in via Facebook
Sign in via Twitter
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
New to HackMD?
Sign up