# -*- coding: UTF-8 -*- import matplotlib as mpl import numpy as np import matplotlib.pyplot as plt #单层感知器的实现 X=np.array([[1,0,0,0,0,0], [1,0,1,0,0,1], [1,1,0,1,0,0], [1,1,1,1,1,1]]) Y=np.array([-1,1,1,-1]) W = (np.random.random(6)-0.5)*2 #w权值的取值范围为-1,1 lr = 0.1 #学习率 n=0 #计算迭代次数 O=0#神经网络输出 def update(): global X,Y,W,lr,n n=n+1 O=np.dot(X,W.T) W_C = lr*((Y-O.T).dot(X)) W = W+W_C if __name__ == '__main__': for _ in range (100): update() x1=[0,1] y1=[1,0] x2=[0,1] y2=[0,1] xdata=np.linspace(-1,2) a=W[3] b=W[2]+xdata*W[4] c=W[0]+xdata*W[1]+xdata*xdata*W[3] plt.figure() plt.plot(xdata,(-b+np.sqrt(b*b-4*a*c))/(2*a),'r') plt.plot(xdata,(-b-np.sqrt(b*b-4*a*c))/(2*a),'r') plt.plot(x1,y1,'bo') plt.plot(x2,y2,'yo') plt.show()
线性神经网络处理异或问题
最新推荐文章于 2020-12-02 13:42:23 发布
这篇博客介绍了如何用单层感知器实现线性神经网络,并通过Python代码展示了训练过程,解决异或问题。文章中展示了网络的权重更新规则,并在最后绘制了决策边界。
摘要由CSDN通过智能技术生成