*本文章為參考李弘毅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時,可以先從較小的層數開始訓練看看。