阶跃函数与Sigmoid函数

时间:2015-12-26 08:04:36

标签: neural-network

我不太明白为什么sigmoid函数被认为比步进函数更有用(对于神经网络)...希望有人可以为我解释这个。提前谢谢。

2 个答案:

答案 0 :(得分:22)

(Heaviside) step function通常仅在single-layer perceptrons内有用,linearly separable是一种早期类型的神经网络,可在输入数据为multi-layer neural networks or multi-layer perceptrons的情况下用于分类。

然而,backpropapagation更受关注,因为它们是通用函数逼近器,它们能够区分不可线性分离的数据。

使用differentiable训练多层感知器。反向传播的要求是gradient descent激活函数。这是因为反向传播在此函数上使用sigmoid or logistic function来更新网络权重。

Heaviside阶跃函数在 x = 0 处是不可微分的,其衍生物在其他地方 0 。这意味着梯度下降不能在更新权重方面取得进展,反向传播将失败。

http://unav-go.github.io/?p=37.1966,-3.6245没有这个缺点,这解释了它作为神经网络领域内的激活函数的用处。

答案 1 :(得分:1)

这取决于您正在处理的问题。在简单二进制分类的情况下,步进函数是合适的。通过引入噪声或不确定性,在构建更具生物学意义的网络时,Sigmoids非常有用。 sigmoids的另一个但完全不同的用途是用于数值延续,即在对模型中的某些参数进行分叉分析时。使用平滑系统可以更容易地进行数值延续(对于非平滑系统,非常棘手)。