W3Cschool
恭喜您成為首批注冊用戶
獲得88經(jīng)驗值獎勵
tf.nn.weighted_cross_entropy_with_logits(
targets,
logits,
pos_weight,
name=None
)
定義在:tensorflow/python/ops/nn_impl.py。
計算加權交叉熵。
類似于sigmoid_cross_entropy_with_logits(),除了pos_weight,允許人們通過向上或向下加權相對于負誤差的正誤差的成本來權衡召回率和精確度。
通常的交叉熵成本定義為:
targets * -log(sigmoid(logits)) +
(1 - targets) * -log(1 - sigmoid(logits))
值pos_weights > 1減少了假陰性計數(shù),從而增加了召回率。相反設置pos_weights < 1會減少假陽性計數(shù)并提高精度。從一下內(nèi)容可以看出pos_weight是作為損失表達式中的正目標項的乘法系數(shù)引入的:
targets * -log(sigmoid(logits)) * pos_weight +
(1 - targets) * -log(1 - sigmoid(logits))
為了簡便起見,讓x = logits,z = targets,q = pos_weight。損失是:
qz * -log(sigmoid(x)) + (1 - z) * -log(1 - sigmoid(x))
= qz * -log(1 / (1 + exp(-x))) + (1 - z) * -log(exp(-x) / (1 + exp(-x)))
= qz * log(1 + exp(-x)) + (1 - z) * (-log(exp(-x)) + log(1 + exp(-x)))
= qz * log(1 + exp(-x)) + (1 - z) * (x + log(1 + exp(-x))
= (1 - z) * x + (qz + 1 - z) * log(1 + exp(-x))
= (1 - z) * x + (1 + (q - 1) * z) * log(1 + exp(-x))
設置l = (1 + (q - 1) * z),確保穩(wěn)定性并避免溢出,使用一下內(nèi)容來實現(xiàn):
(1 - z) * x + l * (log(1 + exp(-abs(x))) + max(-x, 0))
logits和targets必須具有相同的類型和形狀。
參數(shù):
返回:
與具有分量加權邏輯損失的logits具有相同形狀的Tensor。
可能引發(fā)的異常:
Copyright©2021 w3cschool編程獅|閩ICP備15016281號-3|閩公網(wǎng)安備35020302033924號
違法和不良信息舉報電話:173-0602-2364|舉報郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號
聯(lián)系方式:
更多建議: