神经网络返回0.5而不是0

时间:2017-11-02 18:54:34

标签: python neural-network artificial-intelligence

我只是跟着tutorial寻找一个简单的神经网络。这真的帮助我理解了这个概念。但是如果我用零测试它,那么[0,0,0],它返回0.5而不是〜0。为什么这样做?什么必须改变它,返回〜0?

X = np.array([ [0,0,1],[0,1,1],[1,0,1],[1,1,1] ])
y = np.array([[0,1,1,0]]).T
syn0 = 2*np.random.random((3,4)) - 1
syn1 = 2*np.random.random((4,1)) - 1
for j in xrange(60000):
    l1 = 1/(1+np.exp(-(np.dot(X,syn0))))
    l2 = 1/(1+np.exp(-(np.dot(l1,syn1))))
    l2_delta = (y - l2)*(l2*(1-l2))
    l1_delta = l2_delta.dot(syn1.T) * (l1 * (1-l1))
    syn1 += l1.T.dot(l2_delta)
    syn0 += X.T.dot(l1_delta)

谢谢你,问候

1 个答案:

答案 0 :(得分:0)

logistic function在原点的值为0.5。如果您希望转移函数位于原点0,请使用tanh(但您必须修改衍生函数)。