R2相關系數
MSE標準誤
損失函數
從上圖中可以看到大概是30 epoch時,相關系數到達了最大值,之后測試集的損失函數突然上升,但是訓練集的損失函數之后一直在震蕩下降。此處即出現了過擬合,特別是50之后,測試集的損失函數不斷上升,但是訓練集的損失函數還在下降,即說明此時測試和訓練集的數據結構已經差距很大了,說明數據出現了過擬合。
接近150 epoch之前,訓練集和測試集的損失函數都不再下降。如果是正常情況,則該實驗就應該是150之前的位置達到模型的最佳性能,此時在相關系數處也能看到最大值。
過擬合和欠擬合的分析判別
訓練集和驗證集的損失函數:
繪制訓練集和驗證集的損失函數隨訓練輪數的變化曲線。
如果訓練集的損失函數持續下降,而驗證集的損失函數在某一時刻開始上升,這可能表明模型開始過擬合。
如果訓練集和驗證集的損失函數都在持續下降,且差距不大,這可能表明模型處于欠擬合狀態。
準確率或其他評估指標:
觀察訓練集和驗證集上的準確率或其他評估指標的變化。
如果訓練集上的準確率很高,而驗證集上的準確率較低,這可能是過擬合的跡象。
相反,如果訓練集和驗證集上的準確率都較低,這可能是欠擬合的表現。
模型復雜度:
比較模型的復雜度和數據量的大小。如果模型過于復雜,而數據量相對較小,容易導致過擬合。增加數據量或簡化模型結構可能有助于解決問題。
可視化模型輸出:通過可視化模型的輸出,例如圖像分類任務中的預測結果與真實標簽的對比,可以直觀地觀察模型是否過擬合或欠擬合。如果模型對訓練數據過度擬合,可能會對訓練集中的噪聲或異常情況過于敏感。
正則化方法:
嘗試使用正則化技術,如 L1 和 L2 正則化、Dropout 等,來防止過擬合。如果加入正則化后模型性能有所改善,可能說明模型存在過擬合問題。
增加驗證集:使用更多的驗證數據來評估模型的性能。如果模型在不同的驗證集上表現不一致,這可能暗示著過擬合或欠擬合的問題。
常用的避免過擬合的方法
- 數據增強:對原始數據進行隨機變換、翻轉、旋轉等操作,增強數據的多樣性。
- 正則化:
- L1和L2正則化:兩者都是損失函數,基于均方誤差MSE,
L1損失函數 = 均方誤差(MSE)+ λ * |θ|
L2損失函數 = 均方誤差(MSE)+ λ * θ^2
θ 是模型的參數,λ 是正則化參數,|θ| 表示參數的絕對值,θ^2 表示參數的平方。
通常情況下先嘗試L2正則化,如果效果不理想,再嘗試L1正則化。 - Dropout :在訓練過程中隨機丟棄部分特征值,丟棄的這部分被設置為0,可以減少模型對某些特征過度依賴。
- 增加訓練數據,即增加樣本數量
- 模型融合: 集合多個模型,取其平均或投票結果,可以提高模型的泛化能力
- 超參數調整: 合理選擇模型的超參數,包括學習率、層數、節點數等。
可以使用Optuna包 實現自動化超參數搜索優化。 - 特征工程:選擇有代表性和信息量豐富的特征,減少噪聲和冗余信息
- 驗證集和交叉驗證:使用驗證集來評估模型的性能,通過交叉驗證來選擇最佳模型和超參數