在深度學習中,分類問題Classification是一個相當重要的議題,但針對Classification中,物體的類別可以分為兩種情況,Object with Single Label 或是 Object with Multi-Label。
Single Label vs. Multi-Label
在Single Label的情況下,物體不會有重複標籤,各標籤為互斥事件,不會有交集狀況,例如判斷圖片為何種動物,只可能會有單一一種情況
如圖即為貓,並不會擁有其他標籤。因此模型最後輸出結果只需要從眾多類別中選擇一種類別。
但在Multi-Label中,物體標籤為獨立事件,各標籤可以同時存在。就同樣以上圖為例,圖中標籤可以為貓、虎斑、棕色、立耳等標籤。
而上方這張圖的標籤就是貓、虎斑、棕色、折耳等標籤,多個標籤可以同時成立。
在DL、ML中,標籤都會進行編碼,轉換為Array的形式,而Single Label、Multi-Label轉換後的編碼並不相同,因此選擇Loss Function會導致不一樣的結果。
Activation Function & Loss Function選擇
在Single Label的狀況下,標籤會轉換為One-hot的形式,該Array中僅容許一index為1,其餘index皆須為0,例如:10個標籤轉換後可能為[0,0,0,0,0,0,0,1,0,0],而Multi-Label在Array中,會有多個index為1,如:[0,1,0,0,1,0,0,1,1,0],因此這兩者在Actiavtion Function有所不同。
Single Label的Activation Function可以選擇Softmax,其公式如下:
其又稱為” 歸一化指數函數”,輸出結果就會跟One-hot Label相似,使所有index的範圍都在(0,1),因此適合用於Single Label的情況,而Loss Function則搭配Cross Entroy或Binary Cross Entropy皆可。
但對於Multi-Label,Activation Function需要選擇Sigmoid或是其他針對單一數值的標準化Normalization Function,而Loss Function就必須搭配Binary Cross Entropy,因為標準Cross Entropy只考慮正樣本,而Binary Cross Entropy同時考慮正負樣本,較為符合Multi-Label的情況。
Single Label可以使用標準Cross Entropy則是因為Activation Function為Softmax,只考慮正樣本的同時會降低負樣本的機率(對所有output歸一化),因此可以使用Cross Entropy。
總結
Multi-Label時,不能使用標準Cross Entropy,Single Label則是標準Cross Entropy或Binary Cross Entropy都可以使用。