阶跃函数与 Sigmoid 函数

Step function versus Sigmoid function

我不太明白为什么 sigmoid 函数被认为比阶跃函数更有用(对于神经网络)...希望有人能为我解释一下。提前致谢。

这取决于您要处理的问题。在简单的二元分类的情况下,阶跃函数是合适的。 Sigmoid 在通过引入噪声或不确定性构建更符合生物学现实的网络时非常有用。另一个完全不同的 sigmoid 用途是用于数值延拓,即在对模型中的某些参数进行分岔分析时。平滑系统的数值延拓更容易(非平滑系统则非常棘手)。

(Heaviside) step function is typically only useful within single-layer perceptrons, an early type of neural networks that can be used for classification in cases where the input data is linearly separable.

但是,multi-layer neural networks or multi-layer perceptrons 更受关注,因为它们是通用函数逼近器,并且能够区分非线性可分的数据。

多层感知器使用 backpropapagation. A requirement for backpropagation is a differentiable activation function. That's because backpropagation uses gradient descent 在此函数上进行训练以更新网络权重。

Heaviside 阶跃函数在 x = 0 处不可微,其导数在其他地方为 0。这意味着梯度下降将无法在更新权重方面取得进展,并且反向传播将失败。

sigmoid or logistic function没有这个缺点,这就解释了它在神经网络领域作为激活函数的有用性。