我最近遇到了tensorflow softmax_cross_entropy_with_logits
,但我无法弄清楚实现与sigmoid_cross_entropy_with_logits
的区别。
答案 0 :(得分:1)
sigmoid和softmax之间的主要区别在于softmax函数在概率方面返回结果,这更符合ML哲学。 softmax的所有输出总和为1.转向告诉您网络对答案的信心。
然而,sigmoid输出是谨慎的。它的正确或不正确。你必须编写代码来自己计算概率。
就网络性能而言。 Softmax通常比sigmoid提供更好的准确性。但是,它也高度依赖于其他超参数。
答案 1 :(得分:1)
我知道我的回答有点晚了,但迟到总比没有好。所以我有完全相同的疑问,答案就在tensorflow文档中。答案是,我引用:
softmax_cross_entropy_with_logits:测量离散分类任务中的概率误差,其中类是互斥的(每个条目恰好在一个类中)。 sigmoid_cross_entropy_with_logits:测量离散分类任务中的概率误差,其中每个类是独立的而不是互斥的
编辑:我想我应该补充一点,虽然这些类是互斥的,但它们的概率不一定是。所需要的只是每行标签是有效的概率分布。 sparse_softmax_cross_entropy_with_logits
中的label
是仅包含真实类索引的向量的情况并非如此。
我还添加了文档的链接。希望这个答案很有帮助。
答案 2 :(得分:0)