如何证明softmax输出形成概率分布而sigmoid输出没有?

数据挖掘 机器学习 神经网络 深度学习 喀拉斯 张量流
2022-02-16 08:20:12

我正在阅读 Nielsen 的书,在第 3 章关于 softmax 函数的这一部分中,他说,就在下面的练习之前,具有输出 softmax 层的神经网络的输出形成概率分布,而 sigmoid 输出并不总是形成它。现在我一直想知道神经网络的输出,如果我有一个 sigmoid 输出层,假设一次观察的输出是 0 类的 0.7,那么 1 类的概率应该是 0.3 吗?或者,在这个二元分类示例中,使用 softmax 输出,在该特定观察中,第 0 类的第一个输出神经元为 0.7,第 1 类的第一个输出神经元为 0.3?

1个回答

Softmax 映射f:n(0,1)n这样f(x)=1. 因此,我们可以将 softmax 的输出解释为概率。

使用 sigmoidal 激活,求和没有这样的约束,所以即使0<S(x)<1, 不能保证S(x)=1. sigmoidal 函数不会标准化输出,所以在你的例子中,class 0有输出0.7,class 1可以有任何价值(0,1), 这可能不是0.3.


这是一个例子:

x=[5,π,13,0]

f(x)[2.6379×104,0.9059,0.05464]

S(x)[6.693×103,0.9586,0.5826,0.5]

因为,所以 softmax 输出向量可以解释为概率。另一方面,,因此您不能将 sigmoidal 输出解释为概率分布,即使0<f(x)<1f(x)=1S(x)>10<S(x)<1

(我任意选择了上面的来证明输入不必是负数、非负数、有理数等,因此xxn