开发者社区> 一个处女座的程序猿> 正文
阿里云
为了无法计算的价值
打开APP
阿里云APP内打开

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

简介: ML之NN:利用神经网络的BP算法解决XOR类(异或非)问题(BP solve XOR Problem)
+关注继续查看

输出结果

image.png




实现代码


#BP solve XOR Problem

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.randn(3,4)*2-1

W = np.random.randn(4,1)*2-1

print (V)

print (W)

#设置学习率

lr = 0.11

             

def update():  #更新权值的函数

   global X,Y,W,V,lr  

   L1=sigmoid(np.dot(X,V))

   L2=sigmoid(np.dot(L1,W))

   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_C

for 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))  

L2=sigmoid(np.dot(L1,W))

print(L2)

def judge(x):

   if x>=0.5:

       return 1

   else:

       return 0

for i in map(judge,L2):

   print(i)


版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
基于前后端分离的博客系统 (Servlet)(中)
基于前后端分离的博客系统 (Servlet)(中)
16 0
PS2022顶级插件Alien Skin Exposure X7中文版
Exposure 结合了专业级的照片调整,庞大的华丽照片外观库以及高效的设计,使其使用起来很愉悦。新的自动调整功能可简化您的工作流程,并使用户进入创意区。
165 0
Set精讲(Java)·算法常用集合处理方法
Set精讲(Java)·算法常用集合处理方法
68 0
如何使用Javascript 访问local部署的YAAS service
Created by Jerry Wang, last modified on May 08, 2015 启动你本地Eclipse里的YAAS service: 为了方便起见,新建一个批处理文件,内容如下,双击即可执行:
32 0
如何使用Javascript 访问local部署的YAAS service
如何使用Javascript 访问local部署的YAAS service
42 0
Why UI correction note always has a big static size
Why UI correction note always has a big static size
49 0
以太坊系列之七: p2p模块的dial--以太坊源码学习
dial.go阅读手记 dial.go是负责和peer建立连接关系的地方,主要是实现 type dialer interface { /* peers已经有的结点 */ newTasks(running int, peers map[discover.
679 0
《JavaScript开发框架权威指南》——第1章 Bower 1.1准备工作
尽管包管理并不是新概念,但是将其广泛应用于前端资源的管理却是最近才有的事情。这些资源包括JavaScript库、样式表、字体、图标(icon)以及图像等,它们是现代网络应用的基本构件。随着现代网络应用的构建基础越来越复杂,对包管理工具的需求日益凸显。
1452 0
+关注
一个处女座的程序猿
国内互联网圈知名博主、人工智能领域优秀创作者,全球最大中文IT社区博客专家、CSDN开发者联盟生态成员、中国开源社区专家、华为云社区专家、51CTO社区专家、Python社区专家等,曾受邀采访和评审十多次。仅在国内的CSDN平台,博客文章浏览量超过2500万,拥有超过57万的粉丝。
文章
问答
文章排行榜
最热
最新
相关电子书
更多
低代码开发师(初级)实战教程
立即下载
阿里巴巴DevOps 最佳实践手册
立即下载
冬季实战营第三期:MySQL数据库进阶实战
立即下载