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