gpt4 book ai didi

tensorflow - Keras 和 TensorFlow 中的所有这些交叉熵损失有什么区别?

转载 作者:行者123 更新时间:2023-11-30 08:21:11 25 4
gpt4 key购买 nike

所有这些交叉熵损失之间有什么区别?

Keras 正在谈论

  • 二元交叉熵
  • 分类交叉熵
  • 稀疏分类交叉熵

虽然 TensorFlow 有

  • Softmax 交叉熵与 logits
  • 带有 logits 的稀疏 softmax 交叉熵
  • Sigmoid 交叉熵与 logits

它们之间有什么区别和联系?它们的典型应用是什么?数学背景是什么?还有其他应该知道的交叉熵类型吗?是否有没有 logits 的交叉熵类型?

最佳答案

只有一个交叉(香农)熵定义为:

H(P||Q) = - SUM_i P(X=i) log Q(X=i)

在机器学习使用中,P 是实际(地面实况)分布,Q 是预测分布。您列出的所有函数都只是辅助函数,它们接受不同的方式来表示PQ

基本上有 3 个主要因素需要考虑:

  • 有 2 种可能的结果(二元分类)或更多。如果只有两个结果,则 Q(X=1) = 1 - Q(X=0) 因此 (0,1) 中的单个 float 可识别整个分布,这就是神经网络的原因二元分类有一个输出(逻辑回归也是如此)。如果有 K>2 种可能的结果,则必须定义 K 个输出(每个 Q(X=...) 一个)

  • 其中一个可以产生适当的概率(即 Q(X=i)>=0SUM_i Q(X=i) =1 或仅产生一个产生一个“分数”,并且有一些固定的方法将分数转换为概率。例如,可以通过采用 sigmoid 将单个实数“转换为概率”,并且可以通过采用其 softmax 来转换一组实数等等。

  • j 使得 P(X=j)=1 (有一个“真正的类”,目标是“硬”的,比如“该图像代表一只猫”)或存在“软目标”(例如“我们 60% 确信这是一只猫,但 40% 的人确信它实际上是一只狗”)。

根据这三个方面,应该使用不同的辅助函数:

                                  outcomes     what is in Q    targets in P   
-------------------------------------------------------------------------------
binary CE 2 probability any
categorical CE >2 probability soft
sparse categorical CE >2 probability hard
sigmoid CE with logits 2 score any
softmax CE with logits >2 score soft
sparse softmax CE with logits >2 score hard

最后,人们可以只使用“分类交叉熵”,因为这就是它的数学定义方式,但是由于诸如硬目标或二元分类之类的东西非常流行 - 现代机器学习库确实提供了这些额外的辅助函数来制作东西更简单。特别是“堆叠”sigmoid 和交叉熵可能在数值上不稳定,但如果知道这两个操作一起应用 - 则存在它们组合的数值稳定版本(在 TF 中实现)。

需要注意的是,如果应用了错误的辅助函数,代码通常仍会执行,但结果会是错误的。例如,如果您将 softmax_* 辅助程序应用于具有一个输出的二元分类,您的网络将被视为始终在输出处生成“True”。

最后一点 - 这个答案考虑分类,当您考虑多标签情况(当单个点可以有多个标签时)时,它略有不同,如下所示Ps 之和不​​等于 1,尽管有多个输出单元,但仍应使用 sigmoid_cross_entropy_with_logits。

关于tensorflow - Keras 和 TensorFlow 中的所有这些交叉熵损失有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44674847/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com