Sigmoid 输出 - 可以解释为概率吗?

Voy*_*Voy 6 classification machine-learning probability neural-network sigmoid

Sigmoid 函数输出一个介于 0 和 1 之间的数字。这是一个概率还是仅仅是一个“是或否”,取决于它是高于还是低于 0.5?

最小的例子:

猫与狗的二元分类。0是猫,1是狗。

我可以对 sigmoid 输出值执行以下解释吗:

  • 0.9 - 这肯定是一只狗
  • 0.52 - 它更可能是一只狗而不是一只猫,但仍然不确定
  • 0.5 - 完全未定,可能是猫或狗
  • 0.48 - 更可能是猫而不是狗,但仍然不确定
  • 0.1 - 它肯定是一只猫

或者这是否是解释结果的正确方法:

  • 0.9 - 这是一只狗
  • 0.52 - 这是一只狗
  • 0.5 - 完全未定,可能是猫或狗
  • 0.48 - 这是一只猫
  • 0.1 - 它是一只猫

请注意,在第一种情况下,我们如何利用数值来表示概率,而在第二种情况下,我们完全忽略了概率解释并将答案折叠为二进制。哪个是正确的?你能解释一下为什么吗?


背景上下文,请随意跳过:

我发现许多来源表明是的,sigmoid 输出可以解释为概率:

  • Source yes 1 - (...) sigmoid(z) 将产生一个介于 0 和 1 之间的值(概率)。
  • 来源是 2 - “输出”必须来自满足分布函数属性的函数,以便我们将其解释为概率。(...) “sigmoid 函数”满足这些属性。
  • 来源是 3 -tf.sigmoid(logits)给你概率。

许多来源表明相反,sigmoid 输出不能解释为概率:

  • 来源 1 - (...) 原始值不一定被解释为原始概率!
  • 来源 2 - Sigmoid (...) 不是概率分布函数
  • 来源否(也是) 3 -简短的回答是否定的,但是,根据您使用的损失,它可能比您想象的更接近事实。

(奖金问题,回答赢车!)为什么会有这么多自相矛盾的答案?这些答案有何不同?我发现这不太可能只是很多人完全错了——我认为他们只是在谈论不同的案例或一些不同的基本假设。我缺少的有什么区别?


我知道我可以只使用softmax。我也知道 sigmoid 可用于非排他性多类分类(Source multi 1 , Source multi 2 , Source multi 3)——尽管如此仍不清楚这种多 sigmoid 是否输出各种类别的概率,还是只是一个“是”或 no',但适用于多个类。不过,就我而言,我对专有的二元(二元)分类感兴趣,以及是否可以使用 sigmoid 来确定其概率,或者是否应该使用二类 softmax。

edu*_*du_ 6

sigmoid 函数不是概率密度函数 (PDF),因为它的积分为无穷大。然而,它对应于逻辑分布的累积概率函数。

关于您对结果的解释,即使 sigmoid 不是 PDF,但鉴于其值位于区间 [0,1] 内,您仍然可以将它们解释为置信度指数。考虑到这一点,我想说你的第一个解释是最合适的,尽管你可以自由地实现更适合你的目的的分类器。

  • 您能否详细说明为什么允许_“仍然将它们解释为置信指数”_,特别是 sigmoid 不是 PDF?我在这里试图理解的不仅仅是要做什么,而是我为什么要这样做。是因为_'它对应的是逻辑分布的累积概率函数'_? (3认同)

小智 6

我认为您提供的链接之间的矛盾来自于概率的语义定义与直观的定义。我认为“输出接近 1 更有可能是正确的”的直观解释是正确的直觉,但该数字与概率并不直接相关。例如,我们不能说 1 是狗的可能性是 0.5 的两倍。

存在诸如过度拟合之类的问题,使得纯数学概率观点不正确。但是,由于您必须为程序选择两个选项之一,因此将结果解释为大于或小于 0.5 的二进制方法是有意义的,或者也许您应该尝试允许可调整的误差幅度(例如,.5)。 5 +/- x 尚未确定)。