bp神经网络matlab实现和matlab工具箱使用实例

bp神经网络matlab实现和matlab工具箱使用实例

ID:23008856

大小:65.19 KB

页数:5页

时间:2018-11-02

bp神经网络matlab实现和matlab工具箱使用实例_第1页
bp神经网络matlab实现和matlab工具箱使用实例_第2页
bp神经网络matlab实现和matlab工具箱使用实例_第3页
bp神经网络matlab实现和matlab工具箱使用实例_第4页
bp神经网络matlab实现和matlab工具箱使用实例_第5页
资源描述:

《bp神经网络matlab实现和matlab工具箱使用实例》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库

1、BP神经网络matlab实现和matlab工具箱使用实例经过最近一段时间的神经网络学习,终于能初步使用matlab实现BP网络仿真试验。这里特别感谢研友sistor2004的帖子《自己编的BP算法(工具:matlab)》和研友wangleisxcc的帖子《用C++,Matlab,Fortran实现的BP算法》前者帮助我对BP算法有了更明确的认识,后者让我对matlab下BP函数的使用有了初步了解。因为他们发的帖子都没有加注释,对我等新手阅读时有一定困难,所以我把sistor2004发的程序稍加修改后加注了详细解释,方便新手阅读。%严格按照BP网络计

2、算公式来设计的一个matlab程序,对BP网络进行了优化设计%yyy,即在o(k)计算公式时,当网络进入平坦区时(<0.0001)学习率加大,出来后学习率又还原%v(i,j)=v(i,j)+deltv(i,j)+a*dv(i,j);动量项clearallclcinputNums=3;%输入层节点outputNums=3;%输出层节点hideNums=10;%隐层节点数maxcount=20000;%最大迭代次数samplenum=3;%一个计数器,无意义precision=0.001;%预设精度yyy=1.3;%yyy是帮助网络加速走出平坦区alp

3、ha=0.01;%学习率设定值a=0.5;%BP优化算法的一个设定值,对上组训练的调整值按比例修改字串9error=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=ran

4、d(hideNums,outputNums);%10*3;同Vdeltw=zeros(hideNums,outputNums);%10*3dw=zeros(hideNums,outputNums);%10*3samplelist=[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;期望

5、输出值3*3(实为3个向量),有导师的监督学习count=1;while(count<=maxcount)%结束条件1迭代20000次c=1;while(c<=samplenum)fork=1:outputNumsd(k)=expectlist(c,k);%获得期望输出的向量,d(1:3)表示一个期望向量内的值endfori=1:inputNumsx(i)=samplelist(c,i);%获得输入的向量(数据),x(1:3)表一个训练向量字串4end%Forward();forj=1:hideNumsnet=0.0;fori=1:inputNum

6、snet=net+x(i)*v(i,j);%输入层到隐层的加权和∑X(i)V(i)endy(j)=1/(1+exp(-net));%输出层处理f(x)=1/(1+exp(-x))单极性sigmiod函数endfork=1:outputNumsnet=0.0;forj=1:hideNumsnet=net+y(j)*w(j,k);endifcount>=2&&error(count)-error(count+1)<=0.0001o(k)=1/(1+exp(-net)/yyy);%平坦区加大学习率elseo(k)=1/(1+exp(-net));%同上e

7、ndend%BpError(c)反馈/修改;errortmp=0.0;fork=1:outputNumserrortmp=errortmp+(d(k)-o(k))^2;%第一组训练后的误差计算enderrorp(c)=0.5*errortmp;%误差E=∑(d(k)-o(k))^2*1/2%end%Backward();fork=1:outputNumsyitao(k)=(d(k)-o(k))*o(k)*(1-o(k));%输入层误差偏导字串5endforj=1:hideNumstem=0.0;fork=1:outputNumstem=tem+yi

8、tao(k)*w(j,k);%为了求隐层偏导,而计算的∑endyitay(j)=tem*y(j)*(1-y(j));%隐层

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。