SigmoidCrossEntropyLoss與SoftmaxWithLoss使用區別


這里不列舉兩個loss所對應的數學表達式,網絡資料很多,可自行google。在此只簡單說明一下具體使用區別。
1. SigmoidCrossEntropyLoss結合sigmoid函數,多是應用於二分類或多目標分類。
    * 對於二分類,預測輸入圖像為1的概率,一張圖像,其label個數也為1,保證該層的bottom[0]和bottom[1]的[N C H W]是一樣的。
    * 對於多目標分類,其相當於預測該圖像中是否**存在**某**些**目標,存在為1,不存在為0。此時,圖像的label應該是one-hot形式。例如:目標類別數是5,對於訓練圖像,其label形式應該為`image.jpg 0 1 0 1 1`,每個位置分布代表是該圖像是否存在相應的目標。同樣,也保證該層的bottom[0]和bottom[1]的[N C H W]是一樣的。
2. SoftmaxWithLoss結合softmax函數,多用於多類別分類。
    * 該loss預測的是網絡最后的輸出分別屬於**多個類別的概率**,對於給定的label,其優化目標就是使得網絡輸出等於該label的概率值最大,因此,其bottom[0]和bottom[1]的C通道應該倍數關系(bottom[0]->shape[1] / bottom[1]-shape[1] = 類別的個數)
 
caffe中只定義了一種sigmoidcrossentropyloss,tensorflow中定義了4種不同的cross entropy loss,分別應用於不同的分類問題
  1. tf.nn.sigmoid_cross_entropy_with_logits
  2. tf.nn.softmax_cross_entropy_with_logits
  3. tf.nn.sparse_softmax_cross_entropy_with_logits
  4. tf.nn.weighted_cross_entropy_with_logits


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM