ML之NN:利用神经网络的BP算法解决XOR类(异或非)问题(BP solve XOR Problem)-阿里云开发者社区

开发者社区> 一个处女座的程序猿> 正文

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)


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

相关文章
DL:深度学习(神经网络)的简介、基础知识(神经元/感知机、训练策略、预测原理)、算法分类、经典案例应用之详细攻略
DL:深度学习(神经网络)的简介、基础知识(神经元/感知机、训练策略、预测原理)、算法分类、经典案例应用之详细攻略
17 0
一文详解神经网络 BP 算法原理及 Python 实现
  什么是梯度下降和链式求导法则 假设我们有一个函数 J(w),如下图所示。 梯度下降示意图 现在,我们要求当 w 等于什么的时候,J(w) 能够取到最小值。从图中我们知道最小值在初始位置的左边,也就意味着如果想要使 J(w) 最小,w的值需要减小。
2600 0
想将算法进一步开发吗?手把手教你搭建基于CNN模型的Flask Web应用
想将算法进一步开发应用产品吗?本文手把手教你搭建基于CNN模型的Flask Web应用,算是抛砖引玉了。感兴趣的读者可以将自己的算法开发成其他类型的应用产品,说不定下一个人工智能创业公司Boss就是你哦!
4814 0
新颖训练方法——用迭代投影算法训练神经网络
本文介绍了一种利用迭代投影算法对神经网络进行训练的方法,首先介绍了交替投影的基础知识,说明投影方法是寻找非凸优化问题解决方案的一种有效方法;之后介绍了差异图的基础知识,将差异图与一些其他算法相结合使得差分映射算法能够收敛于一个好的解决方案;当投影的情况变多时,介绍了分治算法,最后将迭代投影算法应用到神经网络训练中,给出的例子实验结果表明效果不错。
6819 0
好程序员web前端分享javascript枚举算法
好程序员web前端分享javascript枚举算法,题目:在1,2,3,4,5 五个数中,我们随机选取 3个数。问有多少种取法?并且把每种取出数的方法列举出来。 乍看这道题,其实感觉没什么难度。三个for循环不就解决问题了。
940 0
网络安全与机器学习(一):网络安全中的机器学习算法
网络安全遇见机器学习,会摩擦出怎样的火花呢?
2897 0
+关注
一个处女座的程序猿
国内互联网圈知名博主、人工智能领域优秀创作者,全球最大中文IT社区博客专家、CSDN开发者联盟生态成员、中国开源社区专家、华为云社区专家、51CTO社区专家、Python社区专家等,曾受邀采访和评审十多次。仅在国内的CSDN平台,博客文章浏览量超过2500万,拥有超过57万的粉丝。
1701
文章
0
问答
文章排行榜
最热
最新
相关电子书
更多
文娱运维技术
立即下载
《SaaS模式云原生数据仓库应用场景实践》
立即下载
《看见新力量:二》电子书
立即下载