sparse_categorical_crossentropy
和categorical_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
,包括: