Tommy Huang
Jun 21, 2022

--

面對未知類別你說random seed會造成巨大的差異,這個問題就是這筆資料"未曾/部分"出現在訓練資料內。

簡單說資料有100張吉娃娃資料和5張臘腸狗資料,然後訓練的時候下random,假設batch為20。

1. 結果每一次batch有臘腸的時候,都是19張吉娃娃一張臘腸,這樣的loss換偏向吉娃娃的錯誤。

2. 另一次random seed 的時候,都是15張吉娃娃5張臘腸,這時候就比較能學到臘腸的資料。

所以1再判斷臘腸出錯率高,但2判斷的時候準確度就比較高。

所以我們在評估資料的穩定性(不確定性),除了OOD和你提到的reconstruct loss外,多個模型的一致性也很重要,例如上述的1和2訓練出來的模型,假設兩個模型判斷的結果都一樣,代表這張圖穩定性很高,在訓練集有出現過,但1和2結果不同,代表這張圖穩定性很差,不確定性高,這張圖需要拿來再訓練模型。

或是你在模型部分可以採用ensemble learning方式,讓多個模型的output做decision fusion做到避免你說random seed造成的差異。

上述做法都是解法之一,但最大的問題是「面對未知」,現今深度學習是有本事學出"外差"的結果,但畢竟"外差"依舊是預測的,所以不穩定性本來就高,這類的問題我建議不要用演算法解,演算法都是基於特定問題和類別來解,你今天解掉這個問題,不代表換個資料集後這問題還是能解,最簡單的方式去收資料吧。

這句話很重要「資料決定成效,演算法只是去逼近資料預測/分類結果的上限」。

--

--

Tommy Huang
Tommy Huang

Written by Tommy Huang

怕老了忘記這些吃飯的知識,開始寫文章記錄機器/深度學習相關內容。Medium現在有打賞功能(每篇文章最後面都有連結),如果覺得寫的文章不錯,也可以Donate給個Tipping吧。黃志勝 Chih-Sheng Huang (Tommy), mail: chih.sheng.huang821@gmail.com

No responses yet