我不太理解为什么sigmoid函数被认为比阶跃函数更有用(对于神经网络)。希望有人能给我解释一下。提前谢谢。
发布于 2015-12-26 18:30:05
(Heaviside) step function通常只在single-layer perceptrons中有用,这是一种早期类型的神经网络,可用于在输入数据为linearly separable的情况下进行分类。
然而,multi-layer neural networks or multi-layer perceptrons更有意义,因为它们是通用函数逼近器,并且能够区分不可线性分离的数据。
多层感知器使用backpropapagation进行训练。反向传播的一个要求是differentiable激活功能。这是因为反向传播在此函数上使用gradient descent来更新网络权重。
Heaviside阶跃函数在x=0时是不可微的,它的导数在别处。这意味着梯度下降将无法在更新权重上取得进展,反向传播将失败。
sigmoid or logistic function没有这个缺点,这解释了它作为神经网络领域中的激活函数的有用性。
发布于 2015-12-26 16:33:55
这取决于您正在处理的问题。在简单的二元分类的情况下,阶跃函数是合适的。当通过引入噪声或不确定性来构建更具生物学真实感的网络时,Sigmoids可能会很有用。sigmoids的另一个但完全不同的用途是用于数值连续,即针对模型中的某些参数进行分叉分析。对于平滑系统,数值延拓更容易(而对于非平滑系统,数值延拓则非常棘手)。
https://stackoverflow.com/questions/34469595
复制相似问题