为什么在使用反向传播时我们需要使用sigmoid函数?

时间:2014-03-16 23:48:55

标签: artificial-intelligence neural-network backpropagation

为什么我们只能使用步进函数然后在计算权重时使用,

weightChange = n * (t-o) * i

Where, n: learning rate;
t: target out;
o: actual out;
i: input

这适用于单层网络。我听说需要一个sigmoid来处理非线性问题,但为什么呢?

2 个答案:

答案 0 :(得分:3)

Sigmoid激活允许从[0,1]得到实数值的平滑曲线。这样,可以计算和调整误差,使得下次执行前馈时,它不仅会输出整数,而且会输出[0,1]的预测。通过这种方式,您可以选择要忽略的内容以及要接受的内容。

你所描述的将是一个二元神经元,它也是完全可以接受的。但是sigmoid激活的神经元给你的光谱[0,1]

答案 1 :(得分:2)

严格地说,您不需要 sigmoid激活功能。您需要的是一个可微函数,它可以作为步进函数的近似值。作为sigmoid的替代方法,您可以改为使用hyperbolic正切函数。

对于多层感知器网络,简单的感知器学习规则不提供基于给定输出误差来确定如何调整来自输出的多个层的权重的方法。反向传播学习规则依赖于sigmoid函数是可微分的这一事实,这使得可以表征输出层误差相对于特定权重的变化的变化率(即使权重是远离输出)。请注意,由于sigmoid的k参数趋于无穷大,sigmoid接近阶跃函数,这是基本感知器中使用的激活函数。