预览加载中,请您耐心等待几秒...
1/10
2/10
3/10
4/10
5/10
6/10
7/10
8/10
9/10
10/10

亲,该文档总共12页,到这已经超出免费预览范围,如果喜欢就直接下载吧~

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

智能控制理论及应用作业 1资料查询 BP神经网络的主要应用: 人脸识别、风电功率预测、短时交通流混沌预测、高炉熔渣粘度预测、汇率预测、价格预测、函数逼近等 Rbf神经网络的主要应用: 函数逼近、短时交通流预测、模式识别、降水预测、民航客运量预测、遥感影像分析、声纹识别、语言识别、人脸识别、车牌识别、汇率预测 Hopfield网络应用: 车牌识别、图像识别、遥感影像分类、字母识别、交通标志识别、优化计算中的应用、联想记忆存储器的实现、 2BP编程算法: 2.1利用样本训练一个BP网络 注:此程序自李国勇书中学习而来 程序部分: function[output_args]=bp(input_args) %UNTITLEDSummaryofthisfunctiongoeshere %Detailedexplanationgoeshere %此设计为两层BP神经网络,3输入,3隐含层节点,两个输出 %初始化部分: lr=0.05;%%需要给定学习速率 error_goal=0.001;%期望的误差 max_epoch=100000;%训练的最大步长 a=0.9;%惯性系数 Oi=0; Ok=0; %给两组输入,以及目标输出: X=[111;-1-11;1-11;];%随便给一组输入输入,训练BP网络 T=[111;111]; %X=-1:0.1:1;%输入范围 %T=sin(pi*X); %X=[] q=3;%隐含层的节点数自己定义,在此给3个 %初始化 [M,N]=size(X);%输入节点个数为M,N为样本数 [L,N]=size(T);%输出节点个数为L wij=rand(q,M);%先给定加权系数一组随机值 wki=rand(L,q); wij0=zeros(size(wij));%加权系数矩阵的初始值 wki0=zeros(size(wki)); forepoch=1:max_epoch%计算开始 NETi=wij*X;%各个隐含层的净输入 forj=1:N fori=1:q Oi(i,j)=2/(1+exp(-NETi(i,j)))-1;%再输入作用下,隐含层的输出 end end NETk=wki*Oi;%各个输出层的净输入 fori=1:N fork=1:L Ok(k,i)=2/(1+exp(-NETk(k,i)))-1;%在输入作用下,输出层的输出 end end E=((T-Ok)'*(T-Ok))/2;%性能指标函数,就是误差 if(E<error_goal)break;%判断是否满足误差,满足的话就直接跳出计算 %不满足的话,就要修正加权系数 else deltak=Ok.*(1-Ok).*(T-Ok);%计算△k w=wki; wki=wki+lr*deltak*Oi'+a*(wki-wki0); wki0=w; deltai=Oi.*(1-Oi).*(deltak'*wki)';%计算△i w=wij; wij=wij+lr*deltai*X'+a*(wij-wij0); wij0=w; end epoch%当前是第多少步 X1=X;%保护当前的输入 NETi=wij*X1;%再一次计算隐含层的输入输出 forj=1:N fori=1:q Oi(i,j)=2/(1+exp(-NETi(i,j)))-1;% end end NETk=wki*Oi;%再一次计算输出层的输出 fori=1:N fork=1:L Ok(k,i)=2/(1+exp(-NETk(k,i)))-1; end end %直到误差满足要求才跳到此步,输出修正的输出值 Oi% Ok%最终满足误差要求下的输出 wij%输出输入层与隐含层的最终修改后的权值 wki%输出隐含层与输出层之间的取值 end 仿真结果: epoch=8 Oi= 0.9690-0.48040.9995 0.99950.92440.9989 0.97340.99910.9356 Ok= 1.00001.00001.0000 0.99820.96580.9981 wij= 3.57962.02822.5985 5.3497-0.46442.5773 5.5337-0.4516-1.6788 wki= 1.54906.14305.8803 2.05931.32883.8144 由仿真结果可以看出,网络在第八步就可以得到满足误差函数的输出,输出时OK。 由于初始权值是随机给定的,因此每次运行结果可能有所差异。 2.2用BP网路逼近sin函数: function[output_args]=BP1(input_args) %UNTITLEDSummaryofthisfunctiongoeshere %Detai