智能计算-单层感知器实验教学内容.doc

智能计算-单层感知器实验教学内容.doc

ID:57130953

大小:448.50 KB

页数:9页

时间:2020-08-03

智能计算-单层感知器实验教学内容.doc_第1页
智能计算-单层感知器实验教学内容.doc_第2页
智能计算-单层感知器实验教学内容.doc_第3页
智能计算-单层感知器实验教学内容.doc_第4页
智能计算-单层感知器实验教学内容.doc_第5页
资源描述:

《智能计算-单层感知器实验教学内容.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、智能计算-单层感知器实验精品文档实验报告2018──2019学年第二学期实验课程智能计算实验学生姓名***实验项目单层感知器学院计算机学院实验性质方向选修实验课班级学号***实验地点同组人数第组实验日期第九周星期五第9.10节成绩环境参数Window7,python一、实验目的及要求二、实验原理、实验内容三、实验仪器设备及材料四、操作方法与实验步骤五、实验数据记录及处理六、实验结果分析实验一:单层感知器1、单层感知器结构图收集于网络,如有侵权请联系管理员删除精品文档(1)输入节点:x1,x2,x3(2)输出节点:y(3)权向量:w1,w2,w3,w0

2、=1(4)偏执因子:b(x0)(5)定义激活函数:2.主要代码(1)单层感知器实现逻辑“或”importnumpyasnp#输入数据'''[d,x1,x2]d:偏置值x1:第一个输入x2:第二个输入'''X=np.array([[1,1,1],[1,1,0],[1,0,1],[1,0,0]])#标签(期望值)Y=np.array([[1],[1],收集于网络,如有侵权请联系管理员删除精品文档[1],[-1]])#权值随机初始化#W=(np.random.random([2,1])-0.5)*2#通过改变学习率观察收敛速度(迭代次数)W=np.arra

3、y([[0],[0],[0]])#激活函数defsgn(X_W):foriinrange(len(X_W)):if(X_W[i]<=0):X_W[i]=-1else:X_W[i]=1returnX_W#学习率设置(手动改变观察迭代次数变化)lr=0.1#神经网络输出O=0#更新权重函数defupdate():globalX,Y,W,lrO=sgn(np.dot(X,W))#shape:(3,1)W_C=lr*(X.T.dot(Y-O))/int(X.shape[0])#这里除"int(X.shape[0])=4"是为了取误差的平均值,当输入节点多的时

4、候要用W=W+W_Ci=0while(True):O=sgn(np.dot(X,W))if(O==Y).all():print('Finished')print("最后权值:",W.T)print('迭代次数:',i)breakupdate()i=i+1#画图importmatplotlib.pyplotasplt#正样本x1=[1,1,0]y1=[1,0,1]#负样本x2=[0]y2=[0]#计算分界线的斜率以及截距k=-W[1]/W[2]d=-W[0]/W[2]print('斜率k=',k)收集于网络,如有侵权请联系管理员删除精品文档print(

5、'截距d=',d)xdata=(-1,2)plt.figure()plt.plot(xdata,xdata*k+d,'r')plt.scatter(x1,y1,c='b')plt.scatter(x2,y2,c='y')plt.show()(2)线性神经网络引入非线性输入实现逻辑“异或”importnumpyasnp#输入数据X1=np.array([[1,1,1],[1,0,0],[1,0,1]])X2=np.array([[1,1,1],[1,0,0],[1,1,0]])#标签Y1=np.array([[-1],[-1],[1]])#为了区分我写

6、成Y1,Y2其实他们相等Y2=np.array([[-1],[-1],[1]])#权值随机初始化W1=(np.random.random([3,1])-0.5)*2W2=(np.random.random([3,1])-0.5)*2#学习率设置(手动改变观察迭代次数变化)lr=0.1#神经网络输出O=0#更新权重函数defupdate(X,Y,W):globallrO=np.dot(X,W)#shape:(3,1)W_C=lr*(X.T.dot(Y-O))/int(X.shape[0])W=W+W_CreturnWdefsolve(X,Y,W,s):

7、foriinrange(100):W=update(X,Y,W)print('Finished')print(s+"的最后权值:",W.T)#print(s+'的迭代次数:',i)returnWW1=solve(X1,Y1,W1,'一号分类器')收集于网络,如有侵权请联系管理员删除精品文档W2=solve(X2,Y2,W2,'二号分类器')#画图importmatplotlib.pyplotasplt#正样本x1=[1,0]y1=[0,1]#负样本x2=[0,1]y2=[0,1]#计算分界线的斜率以及截距k1=-W1[1]/W1[2]d1=-W1[0

8、]/W1[2]k2=-W2[1]/W2[2]d2=-W2[0]/W2[2]xdata=(-1,2)plt.f

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。