matlab通用神经网络代码_第1页
matlab通用神经网络代码_第2页
matlab通用神经网络代码_第3页
matlab通用神经网络代码_第4页
matlab通用神经网络代码_第5页
已阅读5页,还剩3页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、matlab 通用神经网络代码 学习了一段时间的神经网络 ,总结了一些经验 ,在这愿意和大家分享一下希望对大家有帮助 ,也希望大家可以把其他神经网络的通用代码在这一起分享感应器神经网络、线性网络、 BP 神经网络、径向基函数网络%通用感应器神经网络。P= -40;1 50;%输入向量T=1 1 0 0 1;%期望输出PlotPV(P,T);%描绘输入点图像net=newp(-40 1;-1 50,1);% 生成网络,其中参数分别为输入向量的范围和神经元感应器数量 hold onlinehandle=PlotPc1,1);a=1:25%训练次数net,Y,E=adaPt(net,P,T);lin

2、ehandle=PlotPc1,1,linehandle);drawnow;end%通用 newlin 程序%通用线性网络进行预测time=0:5;T=sin(time*4*Pi);Q=length(T);P=ZeroS(5,Q);%P中存储信号T的前5(可变,根据需要而定)次值,作为网络输入。P(1,2:Q)=T(1,1:(Q-1);P(2,3:Q)=T(1,1:(Q-2);P(3,4:Q)=T(1,1:(Q-3);P(4,5:Q)=T(1,1:(Q-4);P(5,6:Q)=T(1,1:(Q-5);plot(time,T)%绘制信号T曲线XIabe1(时间);yabel(目标信号);titl

3、e( 待预测信号 );net=newli nd(P,T);%根据输入和期望输出直接生成线性网络a=sim( net,P);% 网络测试figure(2)plot(time,a,time,T,+)xlabel(时间);ylabel( 输出 -目标 +);title(输出信号和目标信号);e=T-a;figure(3)plot(time,e)hold onplot(min(time) max(time),0 0,r:)% 可用 Plot(X,zeros(size(x),r:)代替hold offxlabel(时间);ylabel(误差);title( 误差信号 );%通用 BP 神经网络P=-1

4、-1 2 2;0 5 0 5;t=-1 -1 1 1; net=newff(minmax(P),3,1,tansig,purelin,traingd);%输入参数依次为 :样本 P 范围,各层神经元数目 ,各层传递函数 ,训练函数 %训练函数 traingd- 梯度下降法,有 7 个训练参数 .%训练函数traingdm-有动量的梯度下降法,附加1个训练参数 mc(动量因子,缺省为%训练函数traingda-有自适应Ir的梯度下降法,附加3个训练参数:lr_inc(学习率增长比,缺 省为 ;%lr_dec(学习率下降比,缺省为;max_Perf_ inc(表现函数增加最大比,缺省为%训练函数

5、traingdx-有动量的梯度下降法中赋以自适应lr 的方法, 附加 traingdm 和 traingda的 4 个附加参数%训练函数 trainrp-弹性梯度下降法 ,可以消除输入数值很大或很小时的误差,附加4个训练参数 :%delt_inc(权值变化增加量,缺省为 ;delt_dec(权值变化减小量,缺省为 ;%delta0(初始权值变化,缺省为;deltamax(权值变化最大值,缺省为%适合大型网络%训练函数 traincgf-Fletcher-Reeves 共轭梯度法 ;训练函数 traincgp-Polak-Ribiere 共轭梯度法 ; %训练函数 traincgb-Powell

6、-Beale 共轭梯度法%共轭梯度法占用存储空间小,附加1训练参数SearChFCn(一维线性搜索方法,缺省为SrChCha);缺少 1 个训练参数 lr%训练函数 trainScg-量化共轭梯度法 ,与其他共轭梯度法相比,节约时间.适合大型网络%附加2个训练参数:Sigma(因为二次求导对权值调整的影响参数,缺省为 ;%lambda(HeSSian 阵不确定性调节参数,缺省为%缺少 1 个训练参数 :lr%训练函数 trainbfg-BFGS 拟牛顿回退法 ,收敛速度快 ,但需要更多内存 ,与共轭梯度法训练参 数相同 ,适合小网络%训练函数trainoss- 步正割的BP训练法,解决了 BF

7、GS消耗内存的问题,与共轭梯度法训练 参数相同%训练函数 trainlm-Levenberg-Marquardt 训练法 ,用于内存充足的中小型网络net=init(net);%最大训练次数 (前缺省为 10,自 trainrp 后,缺省为 100)%学习率 (缺省为%限时训练迭代过程 (NaN 表示不显示,缺省为 25)%训练要求精度 (缺省为 0)% 最大失败次数 ( 缺省为 5)%最小梯度要求(前缺省为1e-10,自trainrp后,缺省为1e-6)%最大训练时间 (缺省为 inf)net,tr=train(net,P ,t);%网络训练a=sim(net,P)%网络仿真%通用径向基函数

8、网络%其在逼近能力,分类能力,学习速度方面均优于BP神经网络%在径向基网络中 ,径向基层的散步常数是spread 的选取是关键%spread越大,需要的神经元越少,但精度会相应下降,spread的缺省值为1%可以通过 net=newrbe(P,T,spread)生成网络,且误差为 0%可以通过net=newrb(P,T,goal,spread生成网络,神经元由1开始增加,直到达到训练精度或神 经元数目最多为止%GRN N网络,迅速生成广义回归神经网络 (GRNN)P=4 5 6;T= ;net=newgrnn(P,T);%仿真验证p=;v=sim(net,p)%PNN网络,概率神经网络P=0

9、0 ;1 1;0 3;1 4;3 1;4 1;4 3;Tc=1 1 2 2 3 3 3;%将期望输出通过in d2vec()转换,并设计、验证网络T=ind2vec(Tc);net=newpnn(P,T);Y=sim(net,P);Yc=vec2ind(Y)%尝试用其他的输入向量验证网络P2=1 4;0 1;5 2;Y=sim(net,P2);Yc=vec2ind(Y)%应用newrb()函数构建径向基网络,对一系列数据点进行函数逼近P=-1:1;T= .;%绘制训练用样本的数据点plot(P,T,r*);title( 训练样本 );XIabe1(输入向量P); ylabel( 目标向量 T)

10、;%设计一个径向基函数网络,网络有两层,隐层为径向基神经元 ,输出层为线性神经元%绘制隐层神经元径向基传递函数的曲线p=-3:.1:3;a=radbas(p);plot(p,a)title( 径向基传递函数 )xlabel( 输入向量 p)%隐层神经元的权值、 阈值与径向基函数的位置和宽度有关,只要隐层神经元数目、 权值、 阈值正确 ,可逼近任意函数%例如a2=radbas;a3=radbas(p+2);a4=a+a2*+a3*; plot(p,a,b,p,a2,g,p,a3,r,p,a4,m-) title( 径向基传递函数权值之和 )xlabel( 输入 p);ylabel( 输出 a);

11、%应用 newrb() 函数构建径向基网络的时候,可以预先设定均方差精度eg 以及散布常数 sceg=;sc=1;%其值的选取与最终网络的效果有很大关系,过小造成过适性 ,过大造成重叠性net=newrb(P ,T,eg,sc);%网络测试plot(P,T,*)XIabe1(输入);X=-1:.01:1;Y=sim(net,X);hold on plot(X,Y);hold offIegend(目标,输出)%应用 grnn 进行函数逼近P=1 2 3 4 5 6 7 8;T=0 1 2 3 2 1 2 1;pIot(P,T,.,markersize,30)axis(0 9 -1 4)titIe

12、( 待逼近函数 )xIabeI(P)yIabeI(T)%网络设计%对于离散数据点 ,散布常数 spread 选取比输入向量之间的距离稍小一些 spread=;net=newgrnn(P,T,spread);%网络测试A=sim(net,P);hoId onoutputIine=pIot(P ,A,o,markersize,10,coIor,1 0 0);titIe( 检测网络 )xIabeI(P)yIabeI(T 和 A)%应用 pnn 进行变量的分类P=1 2;2 2;1 1; %输入向量Tc=1 2 3;%P 对应的三个期望输出%绘制出输入向量及其相对应的类别plot(P(1,:),P(2,:),.,markersize,30) for i=1:3 text(P(1,i)+,P(2,i),sprintf(class %g,Tc(i) endaxis(0 3 0 3);title( 三向量及其类别 )xlabel(P(1,:)ylabel(P(2,:)%网络设计T=ind2vec(Tc);spread=1;net=newgrnn(P,T,spear

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论