为什么要使用S型函数而不是其他函数?


40

为什么事实上的标准S形函数在(非深度)神经网络和逻辑回归中如此流行?1个1个+Ë-X

我们为什么不使用许多其他可导函数,它们的计算时间更快或更慢的衰减(因此消失的梯度发生得更少)。维基百科上关于Sigmoid函数的例子很少。是我最喜欢的具有缓慢衰减和快速计算的功能。X1个+|X|

编辑

这个问题与具有优点/缺点的神经网络中激活函数的综合列表不同,因为我只对“为什么”感兴趣,而对乙状结肠不感兴趣。


6
注意物流乙状结肠是SOFTMAX功能的一种特殊情况,看看我的回答这个问题:stats.stackexchange.com/questions/145272/...
尼尔摹

10
还有像概率或cloglog等功能,常用的,请参阅:stats.stackexchange.com/questions/20523/...
蒂姆

4
@ user777我不确定它是否重复,因为您引用的线程不能真正回答“ 为什么”问题。
蒂姆

@KarelMacek,您确定它的导数没有在0处的左/右极限吗?实际上,它看起来像来自维基百科的链接图像上的切线很好。
Mark Horvath

5
我讨厌与这么多杰出的社区成员不同意,这些成员投票决定将其作为重复项关闭,但是我被认为明显的重复项并没有解决“为什么”的问题,因此我投票决定重新提出这个问题。
whuber

Answers:


24

这个答案引出自己来回答另一个问题:

模式识别和机器学习的第4.2节(Springer,2006年)中,Bishop表明,在两类分类的贝叶斯处理中,对数自然地以后验概率分布的形式出现。然后,他继续证明离散分布的特征以及指数分布族的子集也是如此。对于多类分类,logit概括为归一化指数函数或softmax函数。

这就解释了为什么在逻辑回归中使用这种S形。

关于神经网络,此博客文章解释了如何对不同的非线性(包括logit / softmax和神经网络中使用的概率)进行统计解释,从而获得动力。基本思想是,多层神经网络可以看作是广义线性模型的层次结构。据此,激活函数是链接函数,它们依次对应于不同的分布假设。


1
大!因此,当我们在网络中使用S形时,可以说我们隐式地假设网络“建模”了各种事件的概率(在内部层或在输出中)。即使对于平方误差,这也可能是网络内部的明智模型(允许输出神经元使用不同的激活函数)。以前从未想过这种直觉,谢谢!
Mark Horvath 2015年

@MarkHorvath很高兴我可以提供帮助。:-)
A. Donda

历史上并非如此。我对混乱历史的最佳总结是,logit进入统计科学的原因主要是,用于预测随时间变化的函数形式(预期人口遵循逻辑曲线)在被改编并用作链接函数[在这里过时使用!]时看起来正确无误。 ; 而且它们很容易通过简单的演算来操作,而绝对值表示法则不是。但是,自然而然地,对于此类功能的最简单逻辑解释是有趣且至关重要的,您的答案就可以解决。
尼克·考克斯

1
我已经阅读了Bishop的两本书(2006年和1995年)中的各个部分,尽管我肯定会使用Logit来获得动力,但我仍然不确定S型在这里是否必不可少。如果我根据2类Poisson假设写下了相同的交叉熵损失函数,但是又使用了一个不同的激活函数而不是S型,该怎么办?例如,这种类似但不太好的分段式定义:g(x)= 1 /(2-2x)如果x <0,则x(0)为1/1 /(2 + 2x),g(0)= 0.5。现在,最大似然方程看起来有所不同,但是如果我们将其最小化,我们是否仍会获得概率作为输出?
–eraoul

如果Bischop会采用,则“自然产生”函数将为,不是吗? a一种=pXC1个1个+pXC1个pXC2一种1个+一种2
Tsjolder先生

18

该函数看起来比其他函数更“自然”的一个原因是,它恰好是伯努利分布的规范参数的反函数: (指数中的函数称为规范参数。)p

Fÿ=pÿ1个-p1个-ÿ=1个-p经验值{ÿ日志p1个-p}
p

也许更令人信服的理由来自信息理论,在该理论中,可以将S形函数推导为最大熵模型。粗略地说,S型函数假定结构最小,反映了我们对基础模型的总体无知状态。


逻辑回归的充分理由。我们也一直使用它来解决平方误差的有趣之处……
Mark Horvath

11

我问自己这个问题已经好几个月了。关于CrossValidated和Quora的答案都列出了逻辑Sigmoid函数的不错的属性,但似乎我们都巧妙地猜测了该函数。我错过的是选择它的理由。我终于在Bengio(2016)“深度学习”书的第6.2.2.2节中找到了一个。用我自己的话:

简而言之,我们希望模型输出的对数适合于训练数据对数似然的基于梯度的优化。

动机

  • 我们希望有一个线性模型,但是我们不能用ž=wŤX+b直接作为ž-+
  • 对于分类,是有意义的假设伯努利分布及其参数模型θPÿ=1个=θ
  • 所以,我们需要映射ž-+[01个]做分类。

为什么要使用逻辑乙状结肠功能?

切断žPÿ=1个|ž=一种X{0一世ñ{1个ž}}产生一个零梯度为ž以外[01个]。每当模型的预测错误时,我们都需要一个强梯度,因为我们用梯度下降来解决逻辑回归。对于逻辑回归,没有封闭形式的解决方案。

考虑到我们使用最大似然估计来拟合模型,逻辑函数具有当模型的预测错误时渐近恒定梯度的良好特性。如下所示:

为了获得数值收益,可以通过最小化训练数据的负对数似然来完成最大似然估计。因此,我们的成本函数为:

J(w,b)=1一世=1个-日志Pÿ=ÿ一世|X一世;wb=1个一世=1个-ÿ一世日志Pÿ=1个|ž+ÿ一世-1个日志Pÿ=0|ž

由于Pÿ=0|ž=1个-Pÿ=1个|ž,因此我们可以关注ÿ=1个情况。因此,问题是在给定z = w T x + b的情况下如何建模Pÿ=1个|žž=wŤX+b

函数Fz映射到P(Y=1|z)的明显要求是:

  • zR:f(z)[0,1]
  • f(0)=0.5
  • f应该是旋转对称的WRT(0,0.5),即f(x)=1f(x),使得翻转类的符号对成本函数没有影响。
  • f应该是非递减的,连续的和可区分的。

所有这些要求都可以通过重新缩放S型函数来满足。两者f(z)=11+ezf(z)=0.5+0.5z1+|z|实现他们。但是,在基于对数似然的基于梯度的优化过程中,S型函数的行为有所不同。我们可以通过插入逻辑函数fz=1来看到差异f(z)=11+ez进入我们的成本函数。

Y = 1的饱和度Y=1

对于P(Y=1|z)=11+ezY=1,则一个错误分类的样本(即m=1)的成本为:

J(z)=log(P(Y=1|z))=log(11+ez)=log(ez1+ez)=z+log(1+ez)

我们可以看到存在一个线性分量z。现在,我们来看两种情况:

  • z大时,模型的预测是正确的,因为Y=1。在成本函数中,log(1+ez)术语渐近线以z大型z。因此,大致取消z出通往该样品和弱梯度大致为零成本。这很有意义,因为模型已经在预测正确的类别。
  • z小(但|z|大)时,由于Y = 1,因此模型的预测正确。在成本函数中,对于小z,对1 + e z项渐近为0。因此,对于该样品的总成本大约是- Ž,意思是梯度WRT ž大致- 1。这使得模型可以轻松地根据收到的恒定梯度校正错误的预测。即使对于很小的zY=1log(1+ez)0zzz1z,不会发生饱和,这会导致梯度消失。

Y = 0的饱和度Y=0

上面,我们集中于Y=1情况。对于Y=0,成本函数的行为类似,仅当模型的预测错误时才提供强梯度。

这是成本函数J(z)Y=1

在此处输入图片说明

它是水平翻转的softplus功能。对于Y=0,它是softplus函数。

备择方案

您提到了逻辑Sigmoid函数的替代方法,例如z1+|z|[0,1]P(Y=1|z)=0.5+0.5z1+|z|

Y=1

J(z)=log(0.5+0.5z1+|z|)

看起来像这样:

在此处输入图片说明

z


当您写“模型错误时”是什么意思?
加布里埃尔·罗蒙

X一世ÿ一世ž=5ÿ一世=0

6

由于最初的问题提到了衰减梯度问题,所以我想补充一下,对于中间层(您无需将激活解释为类概率或回归输出),其他非线性通常比S形函数更可取。最突出的是整流器功能(如在ReLU中),它们在正域上呈线性,在负域上呈零。它们的优点之一是它们较少受到衰减梯度问题的影响,因为导数在正域上是恒定的。ReLU变得很流行,以至于乙状结肠可能不再被称为事实上的标准。

Glorot等。(2011)。深稀疏整流器神经网络


2
是的 我认为后勤功能如此受欢迎的原因是由于它是从统计数据中导入的。Relu是当今许多领域中最受欢迎的。
里卡多·克鲁兹
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.