在反向传播中使用Sigmoid导数会导致误差为零? - 神经网络

时间:2019-06-20 16:00:17

标签: java neural-network backpropagation

我正在使用错误反向传播对神经网络进行编码。为此,我必须从下一层的错误中确定上一层的错误。我不是专家,但是从我所看到的来看,使用以下公式是这样做的一种(或一种)正确方法:

error = ( Weights_next^T * error_next ) .* sigmoid_Derivative(net)

令我感到困惑的是Sigmoid函数的导数的用法。使用它确实有道理,但是由于Sigmoid的导数始终小于或等于0.25,这意味着从一层到另一层向后移动,误差将成倍减小。这样一来,除了最后一层外,几乎没有任何重量调整。

可悲的是,这正是我现在的NN中发生的情况,最后一层存在一些有效错误,而其他所有层的错误均为0。

是否有必要将这个公式调整4倍,以使最高系数不再是0.25,而是1.0了?

还是我在这里做错了其他事情?

0 个答案:

没有答案