【问题标题】:Difference of implementation between tensorflow softmax_cross_entropy_with_logits and sigmoid_cross_entropy_with_logitstensorflow softmax_cross_entropy_with_logits 和 sigmoid_cross_entropy_with_logits 实现的区别
【发布时间】:2017-04-05 19:24:12
【问题描述】:

我最近遇到了 tensorflow softmax_cross_entropy_with_logits,但我不知道在实现上与 sigmoid_cross_entropy_with_logits 相比有什么不同。

【问题讨论】:

    标签: python tensorflow


    【解决方案1】:

    我知道我回答有点晚了,但迟到总比没有好。所以我有完全相同的疑问,答案在 tensorflow 文档中。答案是,我引用:

    softmax_cross_entropy_with_logits:测量类别互斥的离散分类任务中的概率误差(每个条目恰好属于一个类别)。 sigmoid_cross_entropy_with_logits:测量离散分类任务中每个类独立且不互斥的概率误差

    edit:我想我应该补充一点,虽然这些类是互斥的,但它们的概率不必如此。所需要的只是每一行标签都是一个有效的概率分布。 sparse_softmax_cross_entropy_with_logits 不是这种情况,label 是一个仅包含真实类索引的向量。

    我还添加了文档的链接。希望这个答案对您有所帮助。

    【讨论】:

      【解决方案2】:

      softmax_cross_entropy_with_logits首先计算softmax然后是交叉熵,而sigmoid_cross_entropy_with_logits首先计算sigmoid然后是交叉熵。

      【讨论】:

        【解决方案3】:

        sigmoid 和 softmax 之间的主要区别在于,softmax 函数以概率返回结果,这更符合 ML 哲学。从 softmax 结果到 1 的所有输出的总和。这反过来告诉您网络对答案的信心程度。

        而 sigmoid 输出是谨慎的。它要么正确,要么不正确。您必须自己编写代码来计算概率。

        就网络性能而言。 Softmax 通常比 sigmoid 提供更好的精度。但是,它也高度依赖于其他超参数。

        【讨论】:

          猜你喜欢
          • 2016-05-16
          • 2017-04-13
          • 2018-02-27
          • 2016-09-15
          • 2017-07-28
          • 1970-01-01
          • 2016-03-18
          • 1970-01-01
          • 2011-08-10
          相关资源
          最近更新 更多