BP神经网络-异或问题

来源:互联网 发布:淘宝在哪里买装修模板 编辑:程序博客网 时间:2024/06/06 03:57
import numpy as np#输入数据X=np.array([[1,0,0],            [1,0,1],            [1,1,0],            [1,1,1]])#标签Y=np.array([[0,1,1,0]])#初始化权值V=np.random.random((3,4))*2-1W=np.random.random((4,1))*2-1print(V)print(W)#学习率设置lr=0.11def sigmoid(x):    return 1/(1+np.exp(-x))def dsigmoid(x):    return x*(1-x)def update():    global X,Y,W,W,lr    L1=sigmoid(np.dot(X,V))#隐藏层输出(4,4)    L2=sigmoid(np.dot(L1,W))#输出层输出(4,1)    L2_delta=(Y.T-L2)*dsigmoid(L2)    L1_delta=L2_delta.dot(W.T)*dsigmoid(L1)    W_C=lr*L1.T.dot(L2_delta)    V_C=lr*X.T.dot(L1_delta)    W=W+W_C    V=V+V_Cfor i in range(20000):    update()#更新权重    if i%500==0:        L1=sigmoid(np.dot(X,V))#隐藏层输出(4,4)        L2=sigmoid(np.dot(L1,W))#输出层输出(4,1)        print 'Error:',np.mean(np.abs(Y.T-L2))L1=sigmoid(np.dot(X,V))#隐藏层输出(4,4)L2=sigmoid(np.dot(L1,W))#输出层输出(4,1)print L2

这里写图片描述

运行结果:
这里写图片描述

原创粉丝点击