ImageVerifierCode 换一换
格式:DOCX , 页数:17 ,大小:57.48KB ,
资源ID:9024286      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/9024286.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(神经网络实验报告BP网络实现对Hermit函数逼近.docx)为本站会员(b****7)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

神经网络实验报告BP网络实现对Hermit函数逼近.docx

1、神经网络实验报告BP网络实现对Hermit函数逼近实验报告 基于BP网络的多层感知器电气工程及其自动化四班 20080240402 曹建 20080240406 邓宏 一、神经网络结构图 O 输出层 W 隐层 Y0 V 输入层 X0 X二、程序1.单样本程序:function main()clcclose allp=1;Pmax=100 ;q=1;Qmax=30000;n=0.005;l=5;Emin=0.1;Erme=; rand(state,sum(100*clock);w=rand(1,l);w0=0.5;v=rand(1,l ); v0=rand(1,l);y0=-1;x0=-1; f

2、or p=1:Pmax interrupt(p)=normrnd(0,0.1); x(p)=8*(rand()-0.5); d(p)=1.1*(1-x(p)+2*x(p)2)*exp(-x(p)2)/2);end while(q=Qmax) for p=1:Pmax y(p,:)=logsig(v*x(p)+v0*x0); o1(p)=w*y(p,:)+y0*w0; o(p)=o1(p)+interrupt(p); ek=d(p)-o(p); for i=1:l ej(i)=w(i)*(d(p)-o(p)*y(p,i)*(1-y(p,i); end wc=n*ek*y(p,:);w0c=n*e

3、k*y0;vc=n*ej*x(p);v0c=n*ej*x0; w=w+wc;w0=w0+w0c;v=v+vc;v0=v0+v0c; E(p)=d(p)-o(p); end s2=0; for p=1:Pmax s2=E(p)2+s2; end e=(s2/Pmax)0.5; Erme=Erme e; if e=Emin break; end q=q+1;end Erme;qx=linspace(-4,4);for p=1:100 d(p)=1.1*(1-x(p)+2*x(p)2)*exp(-x(p)2)/2);endfor p=1:100 y(p,:)=logsig(v*x(p)+v0*x0)

4、; o1(p)=w*y(p,:)+y0*w0;endplot(Erme);xlabel(误差的收敛曲线)figure;plot(x,d,-r);hold on;plot(x,o1,-.b);xlabel(Hermit多项式曲线与所构建BP网络输出曲线)最好的一次运行结果:学习率=0.01,隐节点数=5q = 25002.批处理程序:function main()clcclose allsamnum=100;testsamnum=101;hiddenunitnum=5;indim=1;outdim=1;rand(state,sum(100*clock)noisevar=0.1;noise=noi

5、sevar*randn(1,samnum);samin=8*rand(1,samnum)-4;samoutnonoise=1.1*(1-samin+2*samin.2).*exp(-samin.2/2);samout=samoutnonoise+noise;testsamin=-4:0.08:4;testsamout=1.1*(1-testsamin+2*testsamin.2).*exp(-testsamin.2/2);figurehold ongridplot(testsamin,testsamout,k-)xlabel(inputx);ylabel(outputy);maxepochs=

6、30000;lr=0.003; alpha=0.5;e0=0.1;w1=0.1*rand(hiddenunitnum,indim);b1=0.1*rand(hiddenunitnum,1);w2=0.1*rand(outdim,hiddenunitnum);b2=0.1*rand(outdim,1);w1ex=w1 b1;w2ex=w2 b2;dw1ex=zeros(hiddenunitnum,2);dw2ex=zeros(1,hiddenunitnum+1);saminex=samin ones(samnum,1);errhistory=;for i=1:maxepochs hiddenou

7、t=logsig(w1ex*saminex); hiddenoutex=hiddenout ones(samnum,1); networkout=w2ex*hiddenoutex; error=samout-networkout; sse=(sumsqr(error)/samnum)0.5; errhistory=errhistory sse; if ssee0 break; end delta2=error; delta1=w2*delta2.*hiddenout.*(1-hiddenout); dw2ex=lr*delta2*hiddenoutex; dw1ex=lr*delta1*sam

8、inex; w1ex=w1ex+dw1ex; w2ex=w2ex+dw2ex; w2=w2ex(:,1:hiddenunitnum);end iw1=w1ex(:,1)b1=w1ex(:,2)w2b2=w2ex(:,1+hiddenunitnum)sse testhiddenout=logsig(w1*testsamin+repmat(b1,1,testsamnum);testnnout=w2*testhiddenout+repmat(b2,1,testsamnum);plot(testsamin,testnnout); figurehold ongridxx,num=size(errhist

9、ory);plot(1:num,errhistory);运行结果最好时,学习效率=0.005,隐节点数=5:w1 = 0.5816 2.5220 -3.9213 -1.8311 -1.4301b1 = 0.7763 5.0958 -1.9469 3.9640 0.8285w2 = 0.1420 2.9787 2.9458 2.5186 -2.2577b2 = -3.2267sse = 0.1000i = 2907 3.加入动量项的批处理程序:只需将批处理程序中的 dw2ex=lr*delta2*hiddenoutex; dw1ex=lr*delta1*saminex;改为 dw2ex=lr*d

10、elta2*hiddenoutex+dw2ex*alpha; dw1ex=lr*delta1*saminex+dw1ex*alpha; 运行结果最好时,学习效率=0.005,隐节点数=7:w1 = 1.2224 0.2118 2.2169 -2.4819 -1.1339 -2.8364 1.6276b1 = 0.1389 -0.4904 -4.4112 -5.1026 -0.3769 -1.1383 -1.0608w2 = 1.8665 -1.1976 -2.7362 -2.7258 -1.8990 5.1942 1.9903b2 = -0.3951i = 5227sse =0.1000表格

11、1. 单样本 BP算法平均最小误差 学习效率隐节点数0.00010.0010.0030.0050.010.130.31870.16000.12400.11400.11770.130550.32820.10200.10300.10.10.110070.29000.10600.10.10430.10.1100.30000.10.10200.10750.10.101 表格 2. 批处理 BP算法平均最小误差 学习效率隐节点数0.00010.0010.0030.0050.010.130.40230.19560.12000.14360.1489NaN50.43020.10240.1 0.10.4985N

12、aN70.47520.12010.10.10.4714NaN100.43570.10730.10100.10.5642NaN表格 3. 加入动量项的批处理 BP算法平均最小误差 学习效率隐节点数0.00010.0010.0030.0050.010.130.28450.12890.11620.11650.1452NaN50.18990.10.10.10.1053NaN70.29840.10.10.10.1002NaN100.22350.10.10.10820.1023NaN三.问题回答1. 比较单样本训练和批处理训练的区别;答:单样本输入是每输入一个样本就调整一次权值,并计算误差的大小,而对于批

13、处理来说,是等所有的样本都输入以后再调整权值.当样本较多的时候批处理能获得较快的收敛速度.2. 根据结果分析增加动量项后算法的变化答:加入动量项后,就等于让权值的收敛方向向着一定的方向进行,由输出的数据可以看出这一点,对于相同的结点数,相同的学习率,加入动量项后,收速度即迭代次数明显的降低.2 改变不同参数的BP网络运行情况及结果,并给予相应的结果分析答:改变不同参数,对网络运行情况的影响,可以概括为:总误差的值有一定的随机性.对于改变网络的学习率,小的学习率会使收敛更稳定一点,但是速度也会相对地慢一点,大的学习率在一定程度上能加快收敛的速度,但是收敛的概率要小得多,很容易发散,所以说,随着学习的增大,迭代的次数会先减小后增大。大到一定程度进,由于波动太大。结果就不在收敛.3 思考:输出层可以采用Sigmoid函数吗?为什么?答:可以,但需要进行变换。4 试验中遇到的问题和解决方法答:一开始不理解隐层,没有考虑隐节点个数的变化;后来还不行,因为没加阈值;后来还有很多错,比如矩阵的点乘,初始化最后终于还是被我搞定哈!

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1