第一種,叫做Feature Collision,也就是兩種截然不同的目標物件,卻取出相同的數據特徵。例如,要訓練AI模型分辨狗和貓,理論上應該取差異較大的體型或臉型做特徵,但如果只取毛色和體重,這樣機器難以分辨相同重量黑貓和黑狗的差異。
遇到這種情況,需要增加學習的特徵數量,模型才能分辨出兩者的不同。
第二種原因和AI數據標註的品質有關。明明是一樣的物件特徵,數據標註時卻誤下不同的標籤,導致機器混淆。以自駕車AI模型的學習數據 (Learning data) 為例,如果兩輛小客車,有一輛被正常標註為小客車,另一輛卻被誤標為公車,機器就會因此學歪,不清楚哪個版本為真。
這也是為什麼前面幾篇反覆提到,精準數據收集和數據處理,對AI模型學習有很大的影響,在下數據特徵和標註時,需要被仔細討論,當餵進去的數據夠精準,AI模型學習才能真正學得好。
學習數據 (Learning Data) 表現不佳,還有第三種可能,就是演算法複雜度不足,或是訓練出了問題。
選用哪種演算法,和商業命題的複雜程度息息相關,面對比較複雜的商業命題,如果使用的演算法太過簡單,AI模型就很可能學不好。就像記性不好的學生,無法背起很多課文。上一堂課提到的Tree Base演算法是不錯的入門選擇,可以不用更換演算法,透過調整參數,來決定AI模型的複雜度。另外複雜度高的模型,如果訓練不足,也可能造成在學習數據上表現不佳。
綜合以上,要Debug一個AI模型,首先要檢查數據特徵取得對不對、夠不夠,標註品質有沒有問題,是否有足夠複雜的模型以及充足的訓練,再做模型重新訓練(Retrain)。
如果學習數據 (Learning Data) 的表現都沒問題才會進到下一步驟:確認測試數據 (Testing Data) 的表現有沒有問題。