多分類和多標籤分類的區別
多分類: 一個樣本屬於且只屬於多個分類中的一個,一個樣本只能屬於一個類,不同類之間是互斥的,比如圖片中一個狗只能被劃分成狗,不能被劃分成貓。
多標籤分類: 一個樣本可以屬於多個類別(或標籤),不同類之間有關聯,比如一個電動車可以被劃分成“電動車”和“車”,這連個標籤不是互斥的,而是有關聯的。
用softmax做多分類和多標籤分類
我們假設,一個神經網絡模型最後的輸出是一個向量logits = 【1,2,3,4】,這個就是神經網絡全連接層的輸出。我們假設一共有4個類別。
softmax可以將logits轉換成一個概率分別,然後取概率值最大的最爲樣本的類別。這個情況是將softmax用於多分類。
我們同樣可以取概率的top前幾作爲最終的多個標籤,或者設置一個閾值,並取大於概率閾值的幾個類別。這個情況我們將softmax用於多標籤分類。
用sigmoid做多標籤分類
sigmoid一般不用來做多分類,而是用來做二分類的。
它將一個標量數字轉換成【0,1】之間的數,如果大於一個設定的概率閾值,我們認爲其屬於某一類,否則不屬於某一類。
那麼我們如何使用sigmoid進行多標籤的分類呢?
我們可以針對logits中每個分類計算的結果分別使用一個sigmoid分類器,分別判定樣本是否屬於某個類別。
在上述向量logits中,使用sigmoid分類器將4個數字都變成【0,1】之間的概率值,假設結果爲【0.02,0.06,0.8,0.6】,然後我們設置4個個概率值,比如0.3,0.3,0.3,0.3,如果概率值大於0.3判定符合類別,那麼類別3和類別4都符合。