为什么逻辑函数使用 e 而不是 2?

数据挖掘 机器学习 深度学习
2021-09-17 10:20:05

sigmoid 函数可以用作机器学习中的激活函数。

S(x)=11+ex=exex+1.

如果用 2 代替 e,

def sigmoid2(z):
    return 1/(1+2**(-z))
x = np.arange(-9,9,dtype=float)
y = sigmoid2(x)
plt.scatter(x,y)

情节看起来很相似。

在此处输入图像描述

为什么要使用逻辑函数 e 而不是2?

3个回答

由于您稍后将最小化对数似然性,因此实际上两者之间没有太大区别log2x=xlog2logex=x. 您会看到差异只是一个常数。
然而,人们可能会争辩使用2x代替ex也使用log2代替log当涉及到优化步骤时。实际上可以使用2x还有许多其他功能,它们显示了一些所需的属性。哪个是:

  • limxf(x)=1
  • limxf(x)=0
  • f(x)=f(x)+1, (对称于(0,0.5)

是来自维基百科的合适功能的示例。

所以有很多看起来像sigmoid的函数,包括你提到的2个,但这是有原因的 e很特别。主要原因是逻辑函数最初用于模拟人口增长。人口,就像兴趣一样,会随着时间的推移而复合。就这样e由于这个原因,它成为一个非常自然的对象。此外,由于有关 glm 的规范链接函数的理论原因,逻辑是理论上最简单的对象之一,可以很容易地证明事情。

它来自模型的基本假设,即存在一个连续的/潜在的/不可观察的Y以某种方式与观察到的值有关Y. 该模型进一步假设Y=1如果信号Y高于某个阈值,否则Y=0. 第三个也是最后一个假设是Y是逻辑分布。一旦有了这些假设,推导出模型就只是代数问题。

您可以在我的博客上阅读更多详细信息