假设我的模型有两个类别1和2。类别1和2具有相同数量的训练和测试数据。但是我想对第1类的损失赔偿比第2类更多,因此一类的误报率要比另一类少(我希望该模型对一类的表现要好于另一类。)。
如何在 Tensorflow 中实现这一目标?
答案 0 :(得分:1)
您正在寻找的东西可能是
weighted_cross_entropy
。
它提供了非常紧密相关的上下文信息,类似于@Sazzad的答案,但特定于TensorFlow。引用文档:
这类似于
sigmoid_cross_entropy_with_logits()
,除了 pos_weight,允许以上调或下调权衡召回率和精度 相对于负值,权衡正误差的成本 错误。
它接受一个附加参数pos_weights
。另请注意,这仅适用于 binary 分类,在您描述的示例中就是这种情况。如果除这两个类之外还有其他类,则不有效。
答案 1 :(得分:0)
如果我正确理解了您的问题,则这不是张量流的概念。你可以自己写。对于二进制分类,损失是这样的
损失= ylogy +(1-y)log(1-y)
0级和1级的损失权重相同。因此,您可以给更多的部分更多的重量。例如
损失= 5 *逻辑+(1-y)log(1-y)
希望它能回答您的问题。