註:本文同步更新在Notion!(數學公式會比較好閱讀)
過適化的核心問題在於模型過度擬合訓練數據,使其對訓練集中的噪聲或不具普遍性的特徵過於敏感。當模型過於複雜時,它會過度學習訓練數據中的每一個細節,導致在新的數據上無法進行有效的泛化。
過適化的特徵是訓練損失持續下降,但測試損失在某個點之後開始上升。這意味著模型已經過度擬合訓練數據,而無法對測試數據進行有效的預測。
過適化可以從模型的**偏差-方差權衡(Bias-Variance Tradeoff)**的角度來理解。
過適化往往出現在高方差的模型中,因為這些模型對訓練數據中的每一個特徵過度擬合,從而無法很好地應用到新的數據。偏差-方差權衡表示我們需要在模型的複雜度和泛化能力之間取得平衡。
正則化是防止過適化的常見手段,通過在損失函數中加入對模型參數的懲罰項來限制模型的複雜度。常見的正則化方法包括:
L2 正則化(Ridge Regularization):
L1 正則化(Lasso Regularization):
提前停止是另一種防止過適化的方法。當訓練過程中發現測試損失開始上升時,可以停止訓練,從而避免過度擬合訓練數據。
交叉驗證通過將數據集分成多個部分,反覆訓練和測試模型,來評估模型的泛化性能。常用的交叉驗證方法有K 折交叉驗證,將數據分成 K 個子集,每次選擇一個子集作為測試集,剩下的作為訓練集。
過於複雜的模型容易過適化,減少模型中的層數和神經元數量,或者選擇更簡單的模型結構,可以幫助模型提升泛化能力。
更大的訓練數據集有助於模型更好地學習數據中的普遍特徵,減少過適化的風險。數據擴增(Data Augmentation)技術可以生成更多的訓練數據來幫助模型訓練。
Dropout 是深度學習中特有的一種技術。它在每一個訓練步驟中,隨機「關閉」一部分神經元,迫使網路不依賴於某些特定神經元,而更具泛化性。
數學上,在每次訓練中,我們以一定的概率 p 隨機將部分神經元的輸出設為零。這樣每次訓練網路的結構都不完全相同,從而避免網路過於依賴某些特徵。
假設我們有一個三層的前饋式神經網路,並且我們在一個較小的數據集上進行訓練,這時模型有可能過度擬合訓練數據。通過繪製訓練損失和測試損失隨著訓練輪數變化的曲線,我們可以發現:
此時,模型已經過度擬合訓練數據,我們應該停止訓練或者調整模型的結構來解決這一問題。