sparse_categorical_crossentropycategorical_crossentropy有什么区别?什么时候应该使用一种损失而不是另一种?例如,这些损失是否适合线性回归?

最佳答案

简单地:

  • categorical_crossentropy(cce)生成一个单列数组,其中包含每个类别的可能匹配项
  • sparse_categorical_crossentropy(scce)产生最可能匹配类别的类别索引。

  • 考虑具有5个类别(或类)的分类问题。
  • cce的情况下,一个热门目标可能是[0, 1, 0, 0, 0],并且模型可以预测[.2, .5, .1, .1, .1](可能正确)
  • scce的情况下,目标索引可以是[1],并且模型可以预测:[.5]。

  • 现在考虑3类的分类问题。
  • cce的情况下,一个热门目标可能是[0, 0, 1],并且该模型可以预测[.5, .1, .4](可能不准确,因为它给第一类提供了更多的可能性)
  • scce的情况下,目标索引可能是[0],并且模型可以预测[.5]

  • 许多分类模型会生成scce输出,因为这样可以节省空间,但会丢失很多信息(例如,在第二个示例中,索引2也非常接近。)出于模型的可靠性,我通常更喜欢cce输出。
    有许多情况下可以使用scce,包括:
  • ,如果您的类(class)是互斥的,即您根本不在乎其他足够接近的预测
  • 类别数量很大,以至于预测输出变得势不可挡。
  • 08-25 00:40