1. 程式人生 > >tensorflow進階篇-4(損失函數3)

tensorflow進階篇-4(損失函數3)

title style loss flow src 稀疏 oss orf png

Softmax交叉熵損失函數(Softmax cross-entropy loss)是作用於非歸一化的輸出結果只針對單個目標分類的計算損失。通過softmax函數將輸出結果轉化成概率分布,然後計算真值概率分布的損失:

技術分享圖片
# Softmax entropy loss
# L = -actual * (log(softmax(pred))) - (1-actual)(log(1-softmax(pred)))
unscaled_logits = tf.constant([[1., -3., 10.]])
target_dist = tf.constant([[0.1, 0.02, 0.88]])
softmax_xentropy = tf.nn.softmax_cross_entropy_with_logits(logits=unscaled_logits, labels=target_dist)
print(sess.run(softmax_xentropy))
技術分享圖片

輸出:[ 1.16012561]

稀疏Softmax交叉熵損失函數(Sparse Softmax cross-entropy loss)和上一個損失函數類似,它是把目標函數分類為true的轉化成index,而Softmax交叉熵損失函數將目標轉成概率分布:

技術分享圖片
# Sparse entropy loss
# L = sum( -actual * log(pred) )
unscaled_logits = tf.constant([[1., -3., 10.]])
sparse_target_dist = tf.constant([2])
sparse_xentropy = tf.nn.sparse_softmax_cross_entropy_with_logits(logits=unscaled_logits, labels=sparse_target_dist)
print(sess.run(sparse_xentropy))
技術分享圖片

輸出:[ 0.00012564]

下面總結一下各種損失函數:

技術分享圖片

tensorflow進階篇-4(損失函數3)