为什么欧拉数在sigmoid中用作常数

数据挖掘 神经网络
2021-09-16 02:21:54

我在问自己为什么在 sigmoid 函数中使用欧拉数1/(1+e^-x)而不是任何其他常数,例如23

我对数据科学的东西很陌生,但我在某处读到欧拉数是曲线的自然增长,这是否意味着欧拉数用于 sigmoid 函数,因为它可以输出均匀分布的值值01?

4个回答

欧拉数自然出现在很多地方;与增长率没有太大关系,但很容易在共同的范围内出现。

没有选择 sigmoid 函数的形式,因为它的导数有一个很好的性质,尽管这是真的。它也没有被选中,因为它是一个范围为 (0,1) 的函数;许多功能都这样做。

sigmoid 函数的出现是因为它是常见问题类型的正确答案。我们将逻辑回归视为预测类概率的通用分类器,但实际上它是底层的回归。它不是回归概率,而是概率的对数几率(logit 函数)。这是应用回归的正确方法,给定关于分类问题中错误分布的假设,这与简单的线性回归不同。

sigmoid 函数是 logit 链接函数的逆函数。这就是它在那里的原因。它从回归输出到实际期望的输出,一个概率。logit 函数之所以存在,是因为它被关于 0/1 因变量分布的假设所暗示。

实际上就是这样。它必须存在于某些类型的常见问题中,因为它是这些问题的答案,而不是因为它被选择用于良好的属性。

因为您需要最小化包含输出的错误,即您对错误进行导数并将其设置为零(基本上)。如果输出来自 sigmoid,那么你有一个非常好的属性:sigmoid 的导数可以用它自己写!

σ(x)=11+ex.
dσ(x)d(x)=σ(x)(1σ(x)).

如果你使用一个常数 a,然后是一个术语 ln(a) 会破坏美丽的财产!

PS:常数只是缩放函数的形状,即如果你增加它,你会更早地达到接近 0 或 1 的值。见下图:

在此处输入图像描述

如果我正确理解您的问题,这就是为什么我们要尝试适应 11+ea(xb) 我们的数据,而不是 11+κa(xb)? (为了简单起见,我在这里使用了单变量案例)

考虑一下,对于任何(积极的) κ,我们可以写成 κ=ec, 因此 11+κa(xb)=11+(ec)a(xb)=11+eac(xb)

因此,从解决方案的角度来看,无论您是使用自然指数还是其他任何方法,使您的可能性最大化的家庭函数中的曲线都是相同的,并且您的参数(在上面的示例中,a)将只需取不同的值,具体取决于您使用的指数。

这对于任何积极的 κ,对于负数 κ,你失去了输出概率必须在 0 和 1 之间的基本属性。

所以总而言之,您不必使用自然指数,您可以使用任何正数,但使用自然指数可以使梯度计算变得简单,并且很可能您可能想要进行任何其他后续计算。您可以使用其他指数来做到这一点,但是您必须跟踪尾随对数。

它们是等价的。例如,0.5xβ=e(ln0.5)xβ=exβ

使用e使导数更加优雅。