Neural network 使用sigmoid函数的导数计算偏差的增量总是0

Neural network 使用sigmoid函数的导数计算偏差的增量总是0,neural-network,backpropagation,sigmoid,Neural Network,Backpropagation,Sigmoid,我正在使用python制作一个ANN,并开始做反向传播。我很快就遇到了试图计算偏差的增量值的问题。这成为了一个问题,因为我使用的是sigmoid函数,当激活值为1时,它的导数(sigmoid(x)*(1-sigmoid(x)))恰好返回0。 我是不是遗漏了什么?它总是返回0的问题是delta也将是0,因此我将无法反向传播偏置的权重。对于非常大的值,sigmoid函数的导数应该只返回接近0的值,如x>5或x这是有意义的,但实际发生的是我的输入不是1,因为我使用的是偏差,所以我将sigmoid设置为

我正在使用python制作一个ANN,并开始做反向传播。我很快就遇到了试图计算偏差的增量值的问题。这成为了一个问题,因为我使用的是sigmoid函数,当激活值为1时,它的导数(
sigmoid(x)*(1-sigmoid(x))
)恰好返回0。
我是不是遗漏了什么?它总是返回0的问题是delta也将是0,因此我将无法反向传播偏置的权重。

对于非常大的值,sigmoid函数的导数应该只返回接近0的值,如
x>5
x这是有意义的,但实际发生的是我的输入不是1,因为我使用的是偏差,所以我将sigmoid设置为返回1。所以每当我调用这个函数,如果它是bias,它就会返回1。最后返回0并调用其派生函数您将sigmoid函数设置为返回1?当然,导数会返回零,因为1*(1-1)总是返回零。当x接近正无穷大时,sigmoid函数应仅返回1。为什么你总是把sigmoid函数设置为返回1?不总是,只有在处理偏置神经元时,因为这是一个骗局,它的激活值应该是1。