java - 为什么使用 sigmoid 函数来确定后验概率?

标签 java machine-learning neural-network

我正在尝试用 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 激活函数在某种程度上借用了逻辑回归(其中经常使用标准 sigmoid 函数)来解决分类问题。这假设结果采用二项式概率模型。在此假设下,逻辑回归模型是最大似然,量化预测变量中结果 Y 差异风险中 X 的相对变化。逻辑回归模型的损失函数也与似然相关。

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

关于java - 为什么使用 sigmoid 函数来确定后验概率?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22029346/

相关文章:

java - 如何修复此方法,将字符串中的数字转换为显示正确的小数位数?

java - 绘制多边形: unable to find error

algorithm - 运动数据对比

machine-learning - 如何使用 scikit-learn 进行高斯/多项式回归?

python - 在 DBSCAN 中使用 Mahalanobis 等替代距离度量

python - keras 编码器和解码器上的分割自动编码器

nlp - Word2Vec 中的维度从何而来?

java - 如何使用Hibernate在数据库中动态创建表?

java - 从构造函数调用函数

neural-network - Torch 中的 LSTM 模型无法学习