【问题标题】:Why is sigmoid function used to determine posterior probability?为什么用 sigmoid 函数来确定后验概率?
【发布时间】:2014-03-28 13:41:12
【问题描述】:

我正在尝试用 Java 实现神经网络。我在学习神经网络时在我的机器学习教科书中发现了这一点:

为了提供一些背景知识,该部分正在讨论使用单个感知器进行分类。感知器计算一个简单的函数,它是输入的加权和。让我们调用这个函数的输出 f(x)。然后,sigmoid 函数将 f(x) 作为输入。这是教科书上的一句话:

The output of the sigmoid function may be interpreted as the posterior 
probability that the input x belongs to a certain class.

为什么sigmoid函数的输出会被解释为输入属于某个类的概率?

【问题讨论】:

  • sigmoid函数的输出取值范围是(0,1],所以可以理解为输入x属于某个类的后验概率
  • 为什么要使用 sigmoid 函数呢?许多其他函数的范围为 (0,1]。
  • 是的,其他函数有(0,1]的范围也可以
  • 所以你是说任何具有范围 (0,1] 的函数都可以衡量分类正确的概率?我不明白这怎么可能是真的。跨度>
  • @Crikckter 任何具有范围 (0,1] 的函数都可以,但可能不是很好,sigmoid 的一些特性使它在许多应用程序中更好。

标签: java machine-learning neural-network


【解决方案1】:

在神经网络中,输出层的 sigmoid 激活函数以某种方式借用了分类问题中的逻辑回归(其中经常使用标准 sigmoid 函数)。这假设了结果的二项式概率模型。在此假设下,逻辑回归模型是最大似然,它量化了预测变量中结果 Y 差异风险中 X 的相对变化。逻辑回归模型的损失函数也与似然性有关。

the relationship between neural network and logistic regression 有更多讨论。另请注意,sigmoid 通常指的是形状(和限制)tanh is a also sigmoid function

【讨论】:

    【解决方案2】:

    如果您的网络的输出是 sigmoid(w.x),这会强制输出进入区间 [0-1]。所以它至少是概率的候选者。此外,如果您的网络上的损失函数是交叉熵损失而不是平方误差损失(如果您想将网络的输出解释为概率,这是一个非常吸引人的损失函数),权重的偏导数 w.r.t.损失函数非常简单,也很容易优化。

    顺便说一句,经过训练以最小化交叉熵损失的 sigmoid 输出的无隐藏层神经网络逻辑回归。

    【讨论】:

      猜你喜欢
      • 2013-07-08
      • 2020-12-24
      • 2020-05-08
      • 2018-01-31
      • 2016-06-23
      • 2018-09-30
      • 2019-10-12
      • 2019-03-05
      • 2020-10-29
      相关资源
      最近更新 更多