2

我知道二元交叉熵與兩類中的分類交叉熵相同。二元交叉熵懲罰單熱矢量的所有分量

此外,我很清楚softmax是什麼。
因此,我看到明確的交叉熵懲罰只是將一個部件(概率)應爲1。

但爲什麼,不能或不應我使用二進制交叉熵上一熱載體?

Normal Case for 1-Label-Multiclass-Mutual-exclusivity-classification: 
################ 
pred   = [0.1 0.3 0.2 0.4] 
label (one hot) = [0 1 0 0] 
costfunction: categorical crossentropy 
          = sum(label * -log(pred)) //just consider the 1-label 
          = 0.523 
Why not that? 
################ 
pred   = [0.1 0.3 0.2 0.4] 
label (one hot) = [0 1 0 0] 
costfunction: binary crossentropy 
          = sum(- label * log(pred) - (1 - label) * log(1 - pred)) 
          = 1*-log(0.3)-log(1-0.1)-log(1-0.2)-log(1-0.4) 
          = 0.887 

我看到,在二進制交叉熵的是一個目標類,並對應於以下一個熱碼:

target class zero 0 -> [1 0] 
target class one 1 -> [0 1] 

總結:爲什麼我們纔算/總結預測類別的負對數可能性。我們爲什麼不懲罰其他的應該不是那種班級?

如果一個人使用二元交叉熵到一個熱點的向量。預計零標籤的可能性也將受到懲罰。

回答

1

有關類似問題,請參見my answer。簡而言之,二進制交叉熵公式對於單向量向量沒有意義。根據任務,可以將兩個或多個類別的交叉熵應用於label或使用(獨立)概率向量。

但是,爲什麼我不能或不應該在一個單獨的熱矢量上使用二叉交叉?

你計算什麼是4獨立特徵二進制交叉熵:

pred = [0.1 0.3 0.2 0.4] 
label = [0 1 0 0] 

模型推斷預測,第一特徵是在以10%的概率,所述第二特徵是,用30%概率等。目標標籤以這種方式解釋:所有功能都關閉,除了第二個功能。注意,[1, 1, 1, 1]也是完全有效的標籤,即它不是一個熱點矢量,並且pred=[0.5, 0.8, 0.7, 0.1]是有效的預測,即總和不必等於1。

換句話說,您的計算是有效的,但是對於完全不同的問題:多標籤非獨佔二進制分類。

另請參閱difference between softmax and sigmoid cross-entropy loss functions in tensorflow