Tensorflow:加权交叉熵中权重的解释

6
Tensorflow函数tf.nn.weighted_cross_entropy_with_logits()接受参数pos_weight。根据文档的定义,pos_weight是指“在正样本上使用的系数”。我认为这意味着增加pos_weight会增加假阳性的损失并减少假阴性的损失。或者我理解错了吗?
1个回答

11

实际上,正好相反。引用文档:

参数 pos_weight 被用作正目标的乘数。

因此,假设您的数据集中有 5 个正例和 7 个负例,如果设置 pos_weight=2,则您的损失就好像您有 10 个正例和 7 个负例。

假设您所有正例都判断错误且所有负例都判断正确。原来您会有 5 个假阴性和 0 个假阳性。当您增加 pos_weight 时,假阴性的数量将人为地增加。请注意,来自假阳性的损失值不变。


谢谢。所以,如果使用具有多个类别和1-hot真实标签的互斥分类器,并增加pos_weight,则会放大所有错误估计情况下的损失,并且正确估计情况下的损失不变(因为正确估计情况下的损失为零)? - Ron Cohen
在所有情况下通过“假阴性”放大损失,但是是的,我认为是这样的。 - sygi

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接