机器学习:我应该使用分类交叉熵还是二进制交叉熵损失进行二进制预测?


36

首先,我意识到如果需要执行二进制预测,则必须通过执行一次热编码来创建至少两个类。它是否正确?但是,二元互熵是否仅适用于只有一个类别的预测?如果我使用大多数图书馆(例如TensorFlow)中常见的分类交叉熵损失,会不会有明显的不同?

实际上,分类交叉熵和二进制交叉熵之间的确切区别是什么?我从未在TensorFlow中看到过二进制交叉熵的实现,所以我认为也许绝对分类的效果同样好。


1
:二元分类的示例machinelearningmastery.com/...:和多类分类machinelearningmastery.com/...
user1367204

@ user1367204:指向多类分类的链接重定向到二进制分类。应该是这个
user3389669

Answers:


51

二项式交叉熵损失是的多项式交叉熵损失的特例。=2

大号θ=-1个ñ一世=1个ñ[ÿ一世日志p一世+1个-ÿ一世日志1个-p一世]=-1个ñ一世=1个ñĴ=1个ÿ一世Ĵ日志p一世Ĵ

其中样本/观测值建立索引,索引类别,为样本标签(LSH的二进制,RHS上的一个热向量)和是样本的预测。一世Ĵÿp一世Ĵ01个Ĵp一世Ĵ=1个一世Ĵ


3
这是说我在多项式交叉熵损失中使用2个类,实际上是在使用二进制交叉熵损失吗?
infomin101

2
@leekwotsin是的
Sycorax说莫妮卡(

17

二进制交叉熵用于多标签分类,而分类交叉熵用于多分类,其中每个示例都属于一个分类。


3
您陈述的理由是什么?为什么不使用分类交叉熵进行多标签分类?
michal,

如果有多个标签,每个标签包含多个类怎么办?
slizb

1
这正是我想听到的,但不是我老板想听到的。有点解释真是太棒了。
Aditya

2

我认为有三种分类任务:

  1. 二进制分类:两个互斥类
  2. 多类别分类:两个以上专属类别
  3. 多标签分类:仅非排他类

从这些,我们可以说

  • 在(1)的情况下,您需要使用二进制交叉熵。
  • 在(2)的情况下,您需要使用分类交叉熵。
  • 在(3)的情况下,您需要使用二进制交叉熵。您可以将多标签分类器视为一个单独的二进制分类器。如果这里有10个类,则分别有10个二进制分类器。每个二进制分类器都是独立训练的。因此,我们可以为每个样本生成多标签。如果要确保必须至少获取一个标签,则可以选择分类损失函数最低的标签,或使用其他指标。

我要强调的是,多类分类与多标签分类并不相似!而是,多标签分类器从二进制分类器中借鉴了一个想法!

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.