基于BP算法的分类器设计_第1页
基于BP算法的分类器设计_第2页
基于BP算法的分类器设计_第3页
基于BP算法的分类器设计_第4页
基于BP算法的分类器设计_第5页
已阅读5页,还剩2页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、基于BP算法的分类器设计1 概述已近证明利用神经网络误差反向传播学习算法(BP算法)设计线性或非线性分类器可以具有较好的效果。然而在决策面已知,即已知物体的分类面时,能否设计神经网络利用BP算法逼近该决策面呢,答案是肯定的。实际上该问题就是利用神经网络去逼近一条或多条曲线。利用神经网络产生的曲面去代替这个决策面,这样就可以非常方便的根据需要来修改决策面,以适应物体变异或突变等情况。下面以一个具体的例子说明这个问题。2 仿真实例已知在二维平面上存在两条决策线,其方程为f1(x1,x2)= x1e-以及f2(x1,x2)= sin24,=x12+x22。可表示为y=f(x)=y1y2=f1(x1,

2、x2)f2(x1,x2)=x1e-sin24,其中=x12+x22。由这两条决策线构成了的非线性分类器可将空间中的三种不同性质的物质分开。利用BP算法设计模型f(x)。 首先考察隐含层为4个神经元的情形。任意选取x1与x2的值(此处各选取20个值)利用MATLAB画出原函数f1与f2的三维图形如图1所示。画出前向传播神经网络图形如图2所示,用神经网络反向学习算法与此图去逼近模型,学习矩阵为之前选取的x1与x2的20个值与其对应的20个输出值。 图1函数f(x)的图像 图2前向传播神经网络3 算法设计算法的程序流程图如图3所示 图3 程序流程图 图 4输出层神经元示意图图5 隐含层神经元示意图3

3、.1 输出层神经元的权值修正算法(神经元j)由于权值的修正值W是通过梯度下降法求得的,因此要求出(n)Wji(n)。如图4, (n)Wji(n)的计算公式如下(n)Wji(n)=(n)ej(n)ej(n)yj(n)yj(n)vj(n)vj(n)Wji(n)对等式右侧的分式分别求偏导数有 (n)Wji(n)=ej(n)(-1)' (vj(n) yi(n) =-ej(n)' (vj(n) yi(n)其中vj(n)=i=1rWji(n)yi(n) yi(n)=(vi(n)可以得到Wji(n)=ej(n)' (vj(n) yi(n)若yi(n)=(vi(n)=11+e-vj(n

4、),则' (vj(n)= yi(n)(1-yi(n)这样就得到了权值的修正值Wji(n)=ej(n)yi(n)(1-yi(n) yi(n)由此值修正权系数Wji(n)。3.2 隐含层神经元的权值修正算法(神经元j)仿照3.1求(n)Wji(n)。如图5, (n)Wji(n)的计算公式如下:(n)Wji(n)=(n)yj(n)yj(n)vj(n)vj(n)Wji(n)其中vj(n)=i=1rWji(n)yi(n) vj(n)Wji(n)=yi(n) yj(n)vj(n)=' (vj(n)= yi(n)(1-yi(n) (n)=12k=1mek(n)2 ek(n)yj(n)=ek(

5、n)vk(n)vk(n)yj(n)=' (vk(n) Wkj(n) (n)yj(n)=-k=1mek(n)(' (vk(n) Wkj(n) =-k=1mk(n)Wkj(n)故有(n)Wji(n)=-k=1mk(n)Wkj(n) ' (vj(n) yi(n)=-j(n)yi(n)则权值的修正值Wji(n)=(-(n)Wji(n)= j(n)yi(n)由此值修正权系数Wji(n)。3.3 MATLAB程序eta=0.06; %学习步长e1=zeros(1,20); e2=zeros(1,20); %误差值sita=zeros(100,1); %误差矩阵zeta=0; %误差

6、初值N=20; %学习矩阵的长度 x1=-10.5 -9.8 -8.6 -7.4 -6.7 -5.5 -4.3 -3.1 -2.8 -1.9 1.2 2.7 3.5 4.3 5.1 6.2 7.9 8 9.9 10;x2=-10.5 -9.8 -8.6 -7.4 -6.7 -5.5 -4.3 -3.1 -2.8 -1.9 1.2 2.7 3.5 4.3 5.1 6.2 7.9 8 9.9 10;%输入矩阵d1=zeros(1,20);d2=zeros(1,20);%真实值输出矩阵y1=zeros(1,20);y2=zeros(1,20);%BP算法输出矩阵for a=1:20 d1(a)=x1

7、(a)*exp(-(x1(a)2+x2(a)2); d2(a)=sin(2*(x1(a)2+x2(a)2)/(4*(x1(a)2+x2(a)2);endW1=1 -1 2 -2'W2=2 1 3 -1'W3=1 0 3 -1'W4=0 3 2 -1' %初始权值rou=0.03; %误差衡量标准times=1000; %学习次数v1=zeros(4,1);v2=zeros(4,1);v3=zeros(4,1);v4=zeros(4,1);u1=zeros(4,1);u2=zeros(4,1);o1=zeros(4,1);o2=zeros(4,1);o3=zero

8、s(4,1);o4=zeros(4,1); %神经元上的值for i=1:times for j=1:N for k=1:4 v1(j)=W1(1)*x1(j)+W2(1)*x2(j); o1(j)=logsig(v1(j); v2(j)=W1(2)*x1(j)+W2(2)*x2(j); o2(j)=logsig(v2(j); v3(j)=W1(3)*x1(j)+W2(3)*x2(j); o3(j)=logsig(v3(j); v4(j)=W1(4)*x1(j)+W2(4)*x2(j); o4(j)=logsig(v4(j); end O=o1(j) o2(j) o3(j) o4(j)'

9、; u1(j)=W3'*O; u2(j)=W4'*O; y1(j)=logsig(u1(j); y2(j)=logsig(u2(j); e1(j)=d1(j)-y1(j); e2(j)=d2(j)-y2(j); zeta=zeta+(e1(j)2+e2(j)2)/2; dW3=eta*e1(j)*y1(j).*O; dW4=eta*e2(j)*y2(j).*O; W3=W3+dW3;%修正权值 W4=W4+dW4;% 修正权值 dW1=zeros(4,1); dW2=zeros(4,1); dW1(1)=eta*(e1(j)*y1(j)*(1-y1(j)*W3(1)+e2(j)

10、*y2(j)*(1-y2(j)*W4(1)*O(1)*(1-O(1)*x1(j); dW1(2)=eta*(e1(j)*y1(j)*(1-y1(j)*W3(2)+e2(j)*y2(j)*(1-y2(j)*W4(2)*O(2)*(1-O(2)*x1(j); dW1(3)=eta*(e1(j)*y1(j)*(1-y1(j)*W3(3)+e2(j)*y2(j)*(1-y2(j)*W4(3)*O(3)*(1-O(3)*x1(j); dW1(4)=eta*(e1(j)*y1(j)*(1-y1(j)*W3(2)+e2(j)*y2(j)*(1-y2(j)*W4(4)*O(4)*(1-O(4)*x1(j);

11、dW2(1)=eta*(e1(j)*y1(j)*(1-y1(j)*W3(1)+e2(j)*y2(j)*(1-y2(j)*W4(1)*O(1)*(1-O(1)*x2(j); dW2(2)=eta*(e1(j)*y1(j)*(1-y1(j)*W3(2)+e2(j)*y2(j)*(1-y2(j)*W4(2)*O(2)*(1-O(2)*x2(j); dW2(3)=eta*(e1(j)*y1(j)*(1-y1(j)*W3(3)+e2(j)*y2(j)*(1-y2(j)*W4(3)*O(3)*(1-O(3)*x2(j); dW2(4)=eta*(e1(j)*y1(j)*(1-y1(j)*W3(2)+e2(

12、j)*y2(j)*(1-y2(j)*W4(4)*O(4)*(1-O(4)*x2(j); W1=W1+dW1;% 修正权值 W2=W2+dW2;% 修正权值 end sita(i)=zeta/N;%均方误差计算 if sita(i)<rou;%判断误差能否接受 break; end endA=W1B=W2C=W3D=W4 plot3(x1,x2,d1,'b');grid on;hold on;plot3(x1,x2,d2,'r');title('functon f');xlabel('input x1');ylabel(

13、9;input x2');zlabel('output f');hold offfor j=1:N for k=1:4 v1(j)=W1(1)*x1(j)+W2(1)*x2(j); o1(j)=logsig(v1(j); v2(j)=W1(2)*x1(j)+W2(2)*x2(j); o2(j)=logsig(v2(j); v3(j)=W1(3)*x1(j)+W2(3)*x2(j); o3(j)=logsig(v3(j); v4(j)=W1(4)*x1(j)+W2(4)*x2(j); o4(j)=logsig(v4(j); end O=o1(j) o2(j) o3(j)

14、o4(j)' u1(j)=W3'*O; u2(j)=W4'*O; y1(j)=logsig(u1(j); y2(j)=logsig(u2(j);endplot3(x1,x2,y1,'b');grid on;hold onplot3(x1,x2,d1,'r');title('compare functon d1 and y1');xlabel('input x1');ylabel('input x2');zlabel('output d1 and y1');hold off;p

15、lot3(x1,x2,y2,'b');grid on;hold onplot3(x1,x2,d2,'r');title('compare functon d2 and y2');xlabel('input x1');ylabel('input x2');zlabel('output d2 and y2');程序运行后可得到修正后的权值矩阵W1,W2,W3,W4分别赋给矩阵A,B,C,D。以及实际输出的图行曲线与BP算法得到的图形曲线的比较图。d1与y1的比较图如图3所示,d2与y2的比较图如图4所示。结果经BP学习算法得到的学习曲线能与实际输出的真实曲线有较好的相似度,且误差在允许的范围之内。A =1.0109;-0.9579; 1.9998;-1.9877B = 2.0109;1.0421; 2.9998;-0.9877C =-1.9955;-2.7510;-0.0016;-2.8610D =-3.0749;-0.0936;-1.0825; 图6 d1与y1曲线比较图 图7 d2与y2曲线比较图4 结论根据以上的例子可以看出误差反向传播学习算法能够较好的逼近任意的曲线,从而在决策面性质或其部分输入输出关系已知的情况下利用简单的方法构造出决策面。因此在构造决策面(尤其是非线

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论