《单层感知器实现逻辑‘与’功能》由会员分享,可在线阅读,更多相关《单层感知器实现逻辑‘与’功能(5页珍藏版)》请在金锄头文库上搜索。
1、单层感知器实现逻辑与功能1.感知器实现逻辑与功能的学习算法单层感知器,即只有一层处理单元的感知器。感知器结构如下图所示:图 1:感知器结构表 1:与运算的真值表x1 x2 y0 0 00 1 01 0 01 1 1分界线的方程(w 1x1+w2x2-T=0)可以为: 0.5x 1+0.5x2-0.75=0输入为 、 ,输出为 yk。当 和 均为 1 时,yk 为 1,否则 yk 为k12k1x20。设阈值 =0.05,训练速率系数 =0.02,初始设置加权为 ,058.)(1w。由于只有一个输出,得加权修正公式为:65.)0(2w kii xnwn)()1(kkkyT第一步:w(0)=(0.0
2、58, 0.065),加入 x1=(0, 0),则 y1=0。由于 T1=0, 1= T1- y1=0,故 w(1)05.121xws=(0.058, 0.065)第二步:加入 x2=(0, 1), ,则 y2=1。由05.2212 xws于 T2=0,则 2= T2- y2=-1,故w(2)=w(1)+0.02(-1)x2=(0.058, 0.045)第三步:加入 x3=(1, 0), ,则 y3=1。由于8.32313xsT3=0,则 3= T3- y3=-1,故w(3)=w(2)+0.02(-1)x3=(0.038, 0.045)第四步:加入 x4=(1, 1), ,则 y4=1。由于0
3、.42414xwsT4=1,则 4= T4- y4=0,故 w(4)=w(3)=(0.038, 0.045)第五步:加入 x1=(0, 0),S 1=-0.05,则 y1=0。由于 T1=0, 1=0,故 w(5)=(0.038, 0.045)第六步:加入 x2=(0, 1),S 2=-0.005,则 y2=0。由于 T2=0, 2=0,故 w(6)=(0.038, 0.045)第七步:加入 x3=(1, 0),S 3=-0.012,则 y3=0。由于 T3=0, 3=0,故 w(7)=(0.038, 0.045)第八步:加入 x4=(1, 1),S 4=0.033,则 y4=1。由于 T4=
4、1, 4=0,故 w(8)=(0.038, 0.045)所以:w=(0.038, 0.045)2.用 Matlab 实现与逻辑的程序function yu();close all;rand(state,sum(100*clock)X=-1 0 0;-1 0 1;-1 1 0;-1 1 1;d=0 0 0 1;h=0.1;p=4;epoch=100;T=0.1; W=rand(1,3);W(1)=T; W1=;W2=;err=;k=0;for i=1:epoch s=0;for j=1:pnet(j)=W*X(:,j);o(j)=(net(j)=0);W=W+h*(d(j)-o(j)*X(:,j
5、);s=s+abs(d(j)-o(j);enderr=err s;k=k+1;W1=W1 W(2);W2=W2 W(3);if s=0,breakendendfigure(1)subplot(3,1,1)x=1:k;plot(x,err,b-)xlabel(迭代次数)ylabel(error)title(误差的收敛曲线)subplot(3,1,2)plot(x,W1,r-)xlabel(迭代次数)ylabel(W1)title(权值 W1 的变化过程)subplot(3,1,3)plot(x,W2,y-)xlabel(迭代次数)ylabel(W2)title(权值 W2 的变化过程)figur
6、e(2)hold ongrid onx1=-2:4;x2=(T-W(1)*x1)/W(2);plot(x1,x2,b-)xlabel(x1)ylabel(x2 )title(样本分布及分界线) x=0 0 1 1;y=0 1 0 1;plot(x,y,b*);M=0 0 0;0 1 0;1 0 0;1 1 1; fprintf(n)display(与运算的结果)display(The final error is: num2str(s)display(The epoch is: num2str(k)display(The final W is: num2str(W(2) num2str(W(3
7、)display(The final T is: num2str(T)display(the result is:)display(x1, x2, y)display(num2str(M)运算结果是: yu与运算的结果The final error is:0The epoch is:3The final W is:0.47586 0.20433The final T is:0.1the result is:x1 x2 y0 0 00 1 01 0 01 1 1生成的图表如图 2,图 3 所示:1 1.2 1.4 1.6 1.8 2 2.2 2.4 2.6 2.8 3012代代代代error代代
8、代代代代代1 1.2 1.4 1.6 1.8 2 2.2 2.4 2.6 2.8 30.40.60.8代代代代W1代代W1代代代代代1 1.2 1.4 1.6 1.8 2 2.2 2.4 2.6 2.8 30.20.30.4代代代代W2代代W2代代代代代图 2 误差的收敛曲线和迭代次数-2 -1 0 1 2 3 4-4-3-2-10123x1x2 代代代代代代代代图 3 样本分布及分界线3.总结和讨论:1.单层感知器的结构与功能都比较简单,所以在解决实际问题时很少被采用,但在神经网络中具有重要的意义,是研究其他网络的基础,而且较易学习和理解,适合与作为学习神经网络的起点。2.单层感知器的局限性:仅对线性可分问题具有分类能力,不能解决异或问题。3.使用二值变换函数和连续变换函数对单层感知器产生的影响:误差的收敛曲线、权值 W1、W 2的变化不同。