1樓:readzw
多標籤分類輸出是乙個序列,標籤間存在共生。
一種方式是採用二分類交叉熵,既每個類別都是乙個二分類,輸出是乙個類別數量長度的01序列,tensorflow可用sigmoid cross entropy
一種方法是用seq2seq解碼,把輸出做成label的標籤序列,那每一時刻都解碼輸出都是乙個多類分類,用softmax cross entropy
2樓:溪亭日暮
在機器學習或者深度學習中,分類問題是乙個最常見的任務,分類問題一般又分為:二分類任務、多分類任務和多標籤分類任務。
二分類任務:輸出只有0和1兩個類別;
多分類任務:一般指的是輸出只有乙個標籤,類別之間是互斥的關係;
多標籤分類任務:輸出的結果是多標籤,類別之間可能互斥也可能有依賴、包含等關係。
在面對不同的分類問題的時候,選擇的loss function也不一樣,二分類和多標籤分類通常使用sigmoid函式而多分類則一般使用softmax函式,可見下表。
\ 分類問題名稱 & 輸出層使用啟用函式 & 對應的損失函式\\
\ 二分類 & & \\
\ 多分類& & \\
\ 多標籤分類& & \\ \
\ \\
多標籤分類問題和一般的多分類問題不僅僅在損失函式的區別上,同時難度也要提公升一大層次,多標籤分類的難點主要體現在:
類標數量不確定,有些樣本可能只有乙個類標,有些樣本的類標可能高達幾十甚至上百個。
類標之間相互依賴,例如包含藍天類標的樣本很大概率上包含白雲,如何解決類標之間的依賴性問題也是一大難點。
多標籤的訓練集比較難以獲取,並且標註的工作量也更大。
輸出空間複雜度高,例如10個類別的單標籤分類,輸出空間為10,但是10個類別的多標籤分類輸出空間為 ,指數級別的複雜度導致多標籤的難度大大提公升。
在實際的操作中,如果我們使用PyTorch做多標籤分類的任務,可以如下:
import
torchm=
torch.nn
.Sigmoid
()# 啟用函式
loss
=torch.nn
.BCELoss
()# loss函式
input
=torch
.autograd
.Variable
(torch
.randn(3
),requires_grad
=True
)target
=torch
.autograd
.Variable
(torch
.FloatTensor(3
).random_(2
))output
=loss(m
(input
),target
)output
.backward
()Keras的通常寫法如下:
import
keras
model
=Sequential
()model
.add
(Conv2D
(input_shape=(
1,300,
300),
padding
='same'
,filters=64
,kernel_size=(
300,
5)))
model
.add
(Activation
('relu'
))model
.add
(MaxPooling2D
(pool_size=(
1,2),
padding
='same'
))model
.add
(Flatten
())model
.add
(Dense
(1024
))model
.add
(Activation
('relu'
))model
.add
(Dense
(478
))model
.add
(Activation
('sigmoid'
))model
.compile
(optimizer
=Adam(lr
=1e-4
),loss
='binary_crossentropy'
,metrics=[
'precision'
,'accuracy'
])model
.fit
()溪亭日暮:彙編 | 我的AI 技術回答
3樓:王華
如圖損失函式和啟用函式選擇:
至於評價指標也得自己定義,看你需求了,如果是想要百分百多標籤對應,那就用正確率,如果是比如三個標籤對兩個標籤也要看,比如漢明損失。
第二個問題就不用問了吧,自己編寫個概率卡閾值是0還是1的函式就行了。
多標籤分類該選BCEWithLogitsLoss還是MultiLabelSoftMarginLoss?
天一神水 1 BCEloss是可以處理多標籤的,官方文件BCEWithLogitsLoss中描述說 In the case of multi label classification the loss can be described as 2 按照PyTorch中文件的定義來說,兩個函式是一致的,...
神經網路多標籤分類?
1.神經網路的輸入 隨機生成的資料。每次生成的資料量需要是一樣的,假設每個樣本有K個資料。2.神經網路的輸出 從幾十根天線裡選擇的幾根天線。假設總共有m根天線,某乙個樣本是要選擇其中的1,3,7根天線的話,我們就可以用乙個m個元素的向量來表示,其中第1,3,7個元素的值是1,其他的元素值都是0.3....
softmax如何作用與多標籤分類?
Jinghao Zhou 話說最近有很多任務作比如circle loss DR loss顯式或隱式地從metric learning做ranking的角度來推廣softmax函式,這種理解最早在N pair loss lifted structued loss出現為 其中第三個連等參考運用了對 和 ...