Keras 仅对两类使用范畴交叉熵

Keras 仅对两类使用范畴交叉熵,keras,deep-learning,neural-network,cross-entropy,Keras,Deep Learning,Neural Network,Cross Entropy,计算机视觉和深度学习文献通常说,一个人应该对一个二元(两类)问题使用binary\u crossentropy,对两个以上的类使用category\u crossentropy。现在我想知道:有什么理由不把后者也用于两类问题吗? 分类的交叉熵: 每个示例只接受一个正确的类 将“仅”取真实神经元,并使用该神经元进行交叉熵计算 二进制交叉熵: 每个示例接受许多正确的类 将对“所有神经元”进行交叉熵计算,考虑到每个神经元可以是两类,0和1 两级问题可以建模为: 只有一个正确类别的2神经元输

计算机视觉和深度学习文献通常说,一个人应该对一个二元(两类)问题使用
binary\u crossentropy
,对两个以上的类使用
category\u crossentropy
。现在我想知道:有什么理由不把后者也用于两类问题吗?

  • 分类的交叉熵:
    • 每个示例只接受一个正确的类
    • 将“仅”取真实神经元,并使用该神经元进行交叉熵计算
  • 二进制交叉熵:
    • 每个示例接受许多正确的类
    • 将对“所有神经元”进行交叉熵计算,考虑到每个神经元可以是两类,0和1
两级问题可以建模为:

  • 只有一个正确类别的2神经元输出:
    softmax+categorical\u交叉熵
  • 1-神经元输出,一类为0,另一类为1:
    sigmoid+binary\u交叉熵

解释

请注意,在分类交叉熵(第一个等式)中,
y_true
一词对于真神经元仅为1,使得所有其他神经元都等于零

方程可以简化为:
ln(y\u pred[correct\u label])


现在请注意二进制交叉熵(图中的第二个等式)有两个项,一个用于将1视为正确的类,另一个用于将0视为正确的类

在这个主题上已经有一些好的线索: