文档详情

BP及RBP神经网络逼近.doc

发布:2015-12-11约6.9千字共35页下载文档
文本预览下载声明
《BP及RBP神经网络逼近、药品销售预测、基本遗传算法设计实验》 实 验 指 导 书 雷菊阳编 机械工程学院 2012年6月 实验一、BP及RBP神经网络逼近 一、实验目的 了解MATLAB集成开发环境 了解MATLAB编程基本方法 加深对BP算法的理解和掌握 掌握工具包入口初始化及调用 加深BP、RBP神经网络对任意函数逼近的理解 二、实验内容 1、MATLAB基本指令和语法。 2、BP算法的MATLAB实现 三、实验步骤 熟悉MATLAB开发环境 输入参考程序 设置断点,运行程序,观察运行结果 四、参考程序 1、BP算法的matlab实现程序 %lr为学习步长,err_goal期望误差最小值,max_epoch训练的最大次数,隐层和输出层初值为零 lr=0.05; err_goal=0.01; max_epoch=3000; 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/(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+lr*deltai*X; wij0=w; end epoch %显示计算次数 %根据训练好的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; 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 Ok %显示网络输出层的输出 2、BP逼近任意函数算法的matlab实现程序 X=-4:0.08:4; T=1.1*(1-X+2*X.^2).*exp(-X.^2./2); net=newff(minmax(X),[20,1],{tansig,purelin}); net.trainParam.epochs=15000; net.trainParam.goal=0.001; net=train(net,X,T); X1=-1:0.01:1; y=sim(net,X1); figure; plot(X1,y,-r,X,T,:b,LineWidth,2); 3.RBF能够逼近任意的非线性函数 X=-4:0.08:4; T=1.1*(1-X+2*X.^2).*exp(-X.^2./2); net=newrb(X,T,0.002,1); X1=-1:0.01:1; y=sim(net,X1); figure; 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个神经元的网络结构,其中隐层、输出层神经元的传递函数均为sigmoi
显示全部
相似文档