To me, error analysis is the sweet spot for improvement. — Donald A. Norman
實務上,我們常常會發現模型的準確率並不會在所有資料的子集都相同,它可能在某個輸入條件之下更常犯錯,而這樣的情況會導致模型不可靠,讓我們無法信任其決策結果。
雖然現存的模型評估方法存在許多漏洞,但其中最顯而易見的就是使用單個指標來評估模型,畢竟用一個數字就概括整個模型的行為是很偏頗的,而錯誤分析可以讓我們逃離單個準確率指標的窠臼,揭開隱藏在底下的錯誤分布情形,進而提升糾錯、改善模型的效率。
*圖片來源:Besmira Nushi — Responsible Machine Learning with Error Analysis
錯誤分析是模型研發的核心流程,如果做的好,它可以告訴你如何最有效率的改善模型表現。
出乎意料的是,目前大部分的錯誤分析都是簡單粗暴的利用試算表手動作業,以語音辨識為例:
其分析步驟如下:
錯誤分析也是迭代的過程,可以不斷增加新的假設並重新分析:
這個過程可以幫助我們了解這些假設是否為錯誤的來源,以及是否需要進一步處理。
而不斷想出新的假設並分析更多資料,就是為了找出能最有效提昇模型表現的 tag,例如前面以 HLP 判斷改善背景有車聲的資料最能提昇模型表現。
有些 MLOps 工具有提供錯誤分析功能,讓我們不需要手動分析,例如微軟的 Error Analysis。
為了盡可能把時間花在刀口上,在錯誤分析之後需要評估該改善哪些 tag 以及改善的優先順序,此時可以參考以下指標:
將上述第 3、4 點指標加入決策的範例如下 (整體準確率改善空間為該類別的改善空間乘上該類別所佔的比例):
進行更深度的分析之後,會發現相較於只考慮 HLP,改善背景有車聲的資料對整體準確率提昇的幫助變小了!
另外還可以考慮下面幾點來找出可以最優先改善的 tag:
對於該優先改善哪個類別的資料並沒有一定的標準,但考量以上指標是一個不錯的方向。
當決定好要優先改善哪些資料後,可以使用以下方法進行改善:
明天就讓我們來看看對於不同資料的型態可以進行什麼樣的增強以增加資料量吧。