BP神经网络matlab工具箱和matlab实现使用实例.docVIP

BP神经网络matlab工具箱和matlab实现使用实例.doc

  1. 1、本文档共5页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
BP神经网络matlab工具箱和matlab实现使用实例,bp神经网络matlab实例,matlab神经网络工具箱,bp神经网络matlab程序,matlabbp神经网络,bp神经网络预测matlab,bp神经网络matlab代码,bp神经网络算法matlab,matlab实现bp神经网络,bp神经网络matlab教程

BP神经网络matlab工具箱和matlab实现使用实例 经过最近一段时间的神经网络学习,终于能初步使用matlab实现BP网络仿真试验。这里特别感谢研友sistor2004的帖子《自己编的BP算法(工具:matlab)》和研友wangleisxcc的帖子《用C++,Matlab,Fortran实现的BP算法 》前者帮助我对BP算法有了更明确的认识,后者让我对matlab下BP函数的使用有了初步了解。因为他们发的帖子都没有加注释,对我等新手阅读时有一定困难,所以我把sistor2004发的程序稍加修改后加注了详细解释,方便新手阅读。 %严格按照BP网络计算公式来设计的一个matlab程序,对BP网络进行了优化设计 %yyy,即在o(k)计算公式时,当网络进入平坦区时(0.0001)学习率加大, 出来后学习率又还原 %v(i,j)=v(i,j)+deltv(i,j)+a*dv(i,j); 动量项 clear all clc inputNums=3; %输入层节点 outputNums=3; %输出层节点 hideNums=10; %隐层节点数 maxcount=20000; %最大迭代次数 samplenum=3; %一个计数器,无意义 precision=0.001; %预设精度 yyy=1.3; %yyy是帮助网络加速走出平坦区 alpha=0.01; %学习率设定值 a=0.5; %BP优化算法的一个设定值,对上组训练的调整值按比例修改 字串9 error=zeros(1,maxcount+1); %error数组初始化;目的是预分配内存空间 errorp=zeros(1,samplenum); %同上 v=rand(inputNums,hideNums); %3*10;v初始化为一个3*10的随机归一矩阵; v表输入层到隐层的权值 deltv=zeros(inputNums,hideNums); %3*10;内存空间预分配 dv=zeros(inputNums,hideNums); %3*10; w=rand(hideNums,outputNums); %10*3;同V deltw=zeros(hideNums,outputNums);%10*3 dw=zeros(hideNums,outputNums); %10*3 samplelist=[0.1323,0.323,-0.132;0.321,0.2434,0.456;-0.6546,-0.3242,0.3255]; %3*3;指定输入值3*3(实为3个向量) expectlist=[0.5435,0.422,-0.642;0.1,0.562,0.5675;-0.6464,-0.756,0.11]; %3*3;期望输出值3*3(实为3个向量),有导师的监督学 习 count=1; while (count=maxcount) %结束条件1迭代20000次 c=1; while (c=samplenum) for k=1:outputNums d(k)=expectlist(c,k); %获得期望输出的向量,d(1:3)表示一个期望向量内 的值 end for i=1:inputNums x(i)=samplelist(c,i); %获得输入的向量(数据),x(1:3)表一个训练向量 字串4 end %Forward(); for j=1:hideNums net=0.0; for i=1:inputNums net=net+x(i)*v(i,j);%输入层到隐层的加权和∑X(i)V(i) end y(j)=1/(1+exp(-net)); %输出层处理f(x)=1/(1+exp(-x))单极性sigmiod函数 end for k=1:outputNums net=0.0; for j=1:hideNums net=net+y(j)*w(j,k); end if count=2error(count)-error(count+1)=0.0001 o(k)=1/(1+exp(-net)/yyy); %平坦区加大学习率 else o(k)=1/(1+exp(-net)); %同上 end end %BpError(c)反馈/修改; errortmp=0.0; for k=1:outputNums errortmp=errortmp+(d(k)-o(k))^2; %第一组训练后的误差计算 end errorp(c)=0.5*errortmp; %误差E=∑(d(k)-o(k))^2 * 1/2 %end %Backward(); for k=1:outputNums yitao(k)=(d(k)-o(k))*o(k)*(1-o(k));

您可能关注的文档

文档评论(0)

docindpp + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档