“稀疏交叉熵损失”中稀疏的含义?

时间:2020-06-22 15:11:17

标签: tensorflow keras cross-entropy

read来自文档:

tf.keras.losses.SparseCategoricalCrossentropy(
    from_logits=False, reduction="auto", name="sparse_categorical_crossentropy"
)

计算标签和预测之间的交叉熵损失。

当有两个或多个标签时使用此交叉熵损失函数 类。我们希望标签以整数形式提供。如果你想 使用一键表示提供标签,请使用 CategoricalCrossentropy损失。应该有#个类的浮点数 y_pred的每个功能的值,以及每个功能的单个浮点值 y_true的功能。

为什么将其称为稀疏分类交叉熵?如果有的话,我们将提供更紧凑的类标签编码(整数与单热向量)。

2 个答案:

答案 0 :(得分:1)

我认为这是因为整数编码比单热点编码更紧凑,因此更适合于编码稀疏二进制数据。换句话说,整数编码=稀疏二进制数据的更好编码。

当您有许多可能的标签(和样本)时,这会很方便,在这种情况下,单例编码比每个示例中的简单整数浪费得多。

答案 1 :(得分:0)

为什么这样称呼它可能是Keras开发人员最好的回答。但是,请注意,这种稀疏的交叉熵仅适用于“稀疏标签”,“稀疏标签”恰好一个值是1,其他所有值都是0(如果标签表示为向量,而不仅仅是索引) )。

另一方面,一般CategoricalCrossentropy还可用于非热点(即任何概率分布)的目标。这些值只需要在 和1之间,并且总和为1。这往往会被遗忘,因为在当前的ML应用程序中,单热点目标的用例非常普遍。