《实验一、BP及RBP神经网络逼近(共3页).doc》由会员分享,可在线阅读,更多相关《实验一、BP及RBP神经网络逼近(共3页).doc(3页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、精选优质文档-倾情为你奉上实验一、BP及RBF神经网络逼近一、实验目的1、 了解MATLAB集成开发环境 2、 了解MATLAB编程基本方法3、 熟练掌握BP算法的原理和步骤4、 掌握工具包入口初始化及调用5、 加深BP、RBF神经网络对任意函数逼近的理解二、实验内容1、MATLAB基本指令和语法。2、BP算法的MATLAB实现三、实验步骤1、 熟悉MATLAB开发环境2、 输入参考程序3、 设置断点,运行程序,观察运行结果四、参考程序1. BP算法的matlab实现程序%lr为学习步长,err_goal期望误差最小值,max_epoch训练的最大次数,隐层和输出层初值为零lr=0.05;er
2、r_goal=0.0001;max_epoch=10000;a=0.9;Oi=0;Ok=0;%两组训练集和目标值X=1 1;-1 -1;1 1;T=1 1;1 1;%初始化wki,wij(M为输入节点j的数量;q为隐层节点i的数量;L为输出节点k的数量)M,N=size(X);q=8;L,N=size(T);wij=rand(q,M);wki=rand(L,q);wij0=zeros(size(wij);wki0=zeros(size(wki);for epoch=1:max_epoch %计算隐层各神经元输出 NETi=wij*X; for j=1:N for i=1:q Oi(i,j)=2
3、/(1+exp(-NETi(i,j)-1; end end %计算输出层各神经元输出 NETk=wki*Oi; for i=1:N for k=1:L Ok(k,i)=2/(1+exp(-NETk(k,i)-1; end end %计算误差函数 E=(T-Ok)*(T-Ok)/2; if (Eerr_goal) break; end %调整输出层加权系数 deltak=Ok.*(1-Ok).*(T-Ok); w=wki; wki=wki+lr*deltak*Oi; wki0=w; %调整隐层加权系数 deltai=Oi.*(1-Oi).*(deltak*wki); w=wij; wij=wij
4、+lr*deltai*X; wij0=w;endepoch %显示计算次数%根据训练好的wki,wij和给定的输入计算输出X1=X;%计算隐层各神经元的输出NETi=wij*X1;for j=1:N for i=1:q Oi(i,j)=2/(1+exp(-NETi(i,j)-1; endend%计算输出层各神经元的输出NETk=wki*Oi;for i=1:N for k=1:L Ok(k,i)=2/(1+exp(-NETk(k,i)-1; endendOk %显示网络输出层的输出2、BP逼近任意函数算法的matlab实现程序n X=-4:0.08:4;n T=1.1*(1-X+2*X.2).
5、*exp(-X.2./2);n net=newff(minmax(X),20,1,tansig,purelin);n net.trainParam.epochs=15000;n net.trainParam.goal=0.001;n net=train(net,X,T);n X1=-1:0.01:1;n y=sim(net,X1);n figure;n plot(X1,y,-r,X,T,:b,LineWidth,2);3.RBF能够逼近任意的非线性函数n X=-4:0.08:4;n T=1.1*(1-X+2*X.2).*exp(-X.2./2);n net=newrb(X,T,0.002,1);n X1=-1:0.01:1;n y=sim(net,X1);n figure;n plot(X1,y,-r,X,T,:b,LineWidth,3);五、思考题1. 将结果用图画出。2. 假设训练样本X=1 -1;1 -1;-1 1,目标输出T=1 1;1 1,建立一个3个输入,单隐层8个神经元,输出层2个神经元的网络结构,其中隐层、输出层神经元的传递函数均为sigmoid函数,(1)试利用BP学习算法实现该网络的训练过程;(3)观察两种学习算法的运行结果,比较两种算法的优缺点。专心-专注-专业