我正在使用错误反向传播对神经网络进行编码。为此,我必须从下一层的错误中确定上一层的错误。我不是专家,但是从我所看到的来看,使用以下公式是这样做的一种(或一种)正确方法:
error = ( Weights_next^T * error_next ) .* sigmoid_Derivative(net)
令我感到困惑的是Sigmoid函数的导数的用法。使用它确实有道理,但是由于Sigmoid的导数始终小于或等于0.25,这意味着从一层到另一层向后移动,误差将成倍减小。这样一来,除了最后一层外,几乎没有任何重量调整。
可悲的是,这正是我现在的NN中发生的情况,最后一层存在一些有效错误,而其他所有层的错误均为0。
是否有必要将这个公式调整4倍,以使最高系数不再是0.25,而是1.0了?
还是我在这里做错了其他事情?