ML之NN:利用神经网络的BP算法解决XOR类(异或非)问题(BP solve XOR Problem)

举报
一个处女座的程序猿 发表于 2021/03/31 01:42:22 2021/03/31
【摘要】 ML之NN:利用神经网络的BP算法解决XOR类(异或非)问题(BP solve XOR Problem)     目录 输出结果 实现代码         输出结果   实现代码 #BP solve XOR Problemimport numpy as np X = np.array ([[1, 0, 0], [1, 0, 1], [1, ...

ML之NN:利用神经网络的BP算法解决XOR类(异或非)问题(BP solve XOR Problem)

 

 

目录

输出结果

实现代码


 

 

 

 

输出结果

 

实现代码


  
  1. #BP solve XOR Problem
  2. import numpy as np
  3. X = np.array ([[1, 0, 0],
  4. [1, 0, 1],
  5. [1, 1, 0],
  6. [1, 1, 1]])
  7. #标签
  8. Y = np.array ([[0, 1, 1, 0]])
  9. V = np.random.randn(3,4)*2-1
  10. W = np.random.randn(4,1)*2-1
  11. print (V)
  12. print (W)
  13. #设置学习率
  14. lr = 0.11
  15. def update(): #更新权值的函数
  16. global X,Y,W,V,lr
  17. L1=sigmoid(np.dot(X,V))
  18. L2=sigmoid(np.dot(L1,W))
  19. L2_delta=(Y.T-L2)*dsigmoid(L2)
  20. L1_delta=L2_delta.dot(W.T)*dsigmoid(L1)
  21. W_C=lr*L1.T.dot(L2_delta)
  22. V_C=lr*X.T.dot(L1_delta)
  23. W=W+W_C
  24. V=V+V_C
  25. for i in range(20000):
  26.     update()
  27.     if i%500==0:
  28.         L1=sigmoid(np.dot(X,V))  #隐藏层输出4*4
  29.         L2=sigmoid(np.dot(L1,W)) #输出层输出4*1
  30.         print("error:",np.mean(np.abs(Y.T-L2)))
  31.         
  32. L1=sigmoid(np.dot(X,V))  
  33. L2=sigmoid(np.dot(L1,W))
  34. print(L2)
  35. def judge(x):
  36.     if x>=0.5:
  37.         return 1
  38.     else:
  39.         return 0
  40. for i in map(judge,L2):
  41.     print(i)

 


 

文章来源: yunyaniu.blog.csdn.net,作者:一个处女座的程序猿,版权归原作者所有,如需转载,请联系作者。

原文链接:yunyaniu.blog.csdn.net/article/details/80789982

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。