为了账号安全,请及时绑定邮箱和手机立即绑定

分类和二元交叉熵之间的区别

分类和二元交叉熵之间的区别

蓝山帝景 2021-07-20 17:37:18
使用 keras 我必须训练一个模型来预测图像属于 0 类还是 1 类。我对二元和 categorical_cross_entropy 感到困惑。我已经搜索过了,但我仍然感到困惑。有人提到我们只在尝试预测多类时使用分类交叉熵,我们应该为此使用单热编码器向量。所以这意味着当我们要使用 binary_cross_entrpoy 进行训练时,我们不需要任何单热编码的向量标签。有人建议将 one_hot 向量表示为 [0. 1.](如果类是 1)或 [1. 0.](如果类为 0)对于 binary_cross_entropy。我正在使用一个带有分类交叉熵的热编码器 [0 1] 或 [1 0]。我的最后一层是model.add(Dense(num_classes, activation='softmax'))    # Compile model  model.compile(loss='categorical_crossentropy', optimizer='adadelta', metrics=['accuracy'])
查看完整描述

1 回答

?
慕田峪4524236

TA贡献1875条经验 获得超5个赞

对于2 个类,它们在数学上相同,因此是二进制的。换句话说,2 类分类交叉熵与单输出二元交叉熵相同。举一个更具体的例子,这些是相同的:


model.add(Dense(1, activation='sigmoid'))

model.compile(loss='binary_crossentropy', ...)

# is the same as

model.add(Dense(2, activation='softmax'))

model.compile(loss='categorical_crossentropy', ...)

使用哪一种?为了避免单热编码分类输出,如果您只有 2 个类,从编码的角度来看,使用二进制交叉熵更容易。二进制情况可能在计算上更有效,具体取决于实现。


查看完整回答
反对 回复 2021-07-28
  • 1 回答
  • 0 关注
  • 380 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信