Machine-Learning
交叉熵與稀疏交叉熵:何時使用其中一個
我正在玩卷積神經網絡,使用 Keras+Tensorflow 對分類數據進行分類。我有兩個損失函數可供選擇:
categorial_crossentropy
和sparse_categorial_crossentropy
。我對
categorial_crossentropy
損失函數有一個很好的直覺,它的定義如下:在哪裡,
- 參考模型參數,例如神經網絡的權重
- 是真正的標籤
- 是預測的標籤
兩個標籤都使用 one-hot 編碼方案。
問題:
- 上述損失函數如何變化
sparse_categorial_crossentropy
?- 它背後的數學直覺是什麼?
- 什麼時候使用一個而不是另一個?
分類交叉熵和稀疏分類交叉熵都具有您上面提到的相同損失函數。唯一的區別是您提到的格式 $ Y_i $ (即真實標籤)。
如果你的 $ Y_i $ 是單熱編碼的,使用 categorical_crossentropy。示例(對於 3 類分類):[1,0,0]、[0,1,0]、[0,0,1]
但是如果你的 $ Y_i $ 是整數,使用 sparse_categorical_crossentropy。上述三類分類問題的示例:[1]、[2]、[3]
使用完全取決於您如何加載數據集。使用稀疏分類交叉熵的一個優點是它節省了內存和計算時間,因為它只是對一個類使用單個整數,而不是整個向量。