本文為機器學習系統設計的好書 Machine Learning Design Patterns 中介紹的第六個模式:Multilabel pattern 的筆記。這跟一般常見的 multiclass classification 不一樣的是 multiclass classification 的結果只會被分到一個類別,並且如果用 softmax 的話所有類別的機率相加為一;而 multilabel classification 會被分到多個類別。常見的例子像是幫一篇文章標上數個標籤,或者預測一個人未來不同慢性病的患病機率等等。
如何實作 multilabel classification?
在網路模型的最後一層用 sigmoid 就能讓產生對於每個分類的機率。
其他設計的考量
- 如果只有兩個分類的話,實作 binary classification 可以用一個 sigmoid 或是 softmax 來得到兩個相加為一的機率。
- 設定一個 threshold,只要機率大於此 threshold 就可以判定輸入是此分類。
- 跟 multiclass classification 一樣要確定每個 label 的資料數目是差不多的。
- Hierarchical labels:一般可以用兩種方法來實作
- Flat labels:將不同等級的 label 都合在一起,用 multilabel 來產生結果。
- Cascade design pattern:用不同的模型來判定不同等級的 label。
- Multilabel pattern 可以用來處理當一張圖片內有多個物體的情形,而不同 labelers 可能會標上不同的 label。
沒有留言:
張貼留言