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

标签 machine-learning neural-network classification probability 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 之间的值(概率)。
  • Source yes 2 - “输出”必须来自满足分布函数属性的函数,以便我们将其解释为概率。 (...)“Sigmoid 函数”满足这些属性。
  • Source yes 3 - tf.sigmoid(logits) 为您提供概率。

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

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

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

<小时/>

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

最佳答案

S 型函数不是概率密度函数 (PDF),因为它的积分为无穷大。然而,它对应于logistic distribution的累积概率函数。 .

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

关于machine-learning - Sigmoid 输出 - 它可以解释为概率吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59058867/

相关文章:

java - 使用 LingPipe 使用朴素贝叶斯对数据进行分类

python - 如何在Python中创建一个易于解释的具有分类特征的回归模型?

machine-learning - 如何通过简单的模拟模型生成人工数据集,用于具有二元响应和 4-5 个特征的分类分析?

machine-learning - 所选单词的词义消歧

matlab - 错误使用 bsxfun 不支持混合整数类输入

python - 如何计算sklearn中每个交叉验证模型的特征重要性

Azure ML : finding the very similar client/payer

python - 使用字符串替换打印时出现语法错误

matlab - 神经网络模型无法预测外部世界数据

python - 如何训练新的 fast-rcnn 图像集