2024-09-03|閱讀時間 ‧ 約 24 分鐘

機器學習模型訓練問題及解決策略

*本文章為參考李弘毅2021年機器學習課程後的筆記。


在訓練模型的時候,常常會遇到訓練上的問題,像是Loss值太大,或是Test出來的結果不如預期,但我們又不知道模型中到底發生了甚麼事,就跟黑盒子一樣。

因此,感謝李弘毅教授傳授了一套SOP來幫助我們判斷模型是哪裡出了問題,應該要怎麼解決!!!


訓練模型的策略:

Loss on training data: 檢查training data的loss

1. Training data的Loss過大,代表模型在訓練資料時就沒訓練好,這有兩種可能性:

a. Model Bias: 這是model太過簡單的問題,也是指訓練出的function太簡單,導 致我們要的預測值,不在學習的function內。

解決方法 → 重新設計model。
(EX: 增加輸入的feature,或是使用別的activation function之類的)

b. Optimization Issue: 此時會發現Gradient Decent中的梯度為 0 。

這有兩種可能,saddle point 或是local minima,這就要透過Hessian矩陣
來判斷了。
解決方法 -> Momentum 動量。


c. 那要如何區分Model Bias還是Optimization問題?

我們可以比較不同的Stacked layer數。如果在20層的Model訓練出來的loss值,比50層的Model訓練出來的loss值還要好,那就代表是optimization issue。(50層相較於20層的Model更有彈性,還有多的30層可以做調整)。

所以當我們在訓練model時,可以先從較小的層數開始訓練看看。

  1. 如果training loss小,但testing loss大,那就是overfitting問題,過度擬合training data才會發生的問題。
    解決方法:
    a. 增加更多訓練資料,讓function越來越接近目標值。
    b. Data augmentation: 透過我們對於資料的理解增加不同的資料。
    c. 限制function: 像是減少神經元的參數、正則化技術Regularization...。
分享至
成為作者繼續創作的動力吧!
© 2024 vocus All rights reserved.