欢迎来到淘文阁 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
淘文阁 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    神经网络大作业 函数拟合.pdf

    • 资源ID:75976577       资源大小:574.98KB        全文页数:13页
    • 资源格式: PDF        下载积分:10金币
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录   QQ登录  
    二维码
    微信扫一扫登录
    下载资源需要10金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    神经网络大作业 函数拟合.pdf

    人工神经网络第一次作业题目:使用函数t eausin(cu)试验 MATLAB中的 BP 算法1、改变不同训练算法,观察效果;2、改变参数 a,c 的值,观察效果;3、改变隐层神经网络个数,观察效果;4、尝试:加入噪声的训练效果。一、改变不同训练算法,观察效果一、改变不同训练算法,观察效果在 MATLAB中,BP 网络的训练函数一共有以下几种,改变不同训练算法,观察效果就是在其他参数不变只改变程序中训练函数的情况下,得到不同训练算法的训练结果。训练方法训练函数梯度下降法traingd有动量的梯度下降法traingdm自适应 lr 梯度下降法traingda自适应 lr 动量梯度下降法traingdx弹性梯度下降法trainrpFletcher-Reeves 共轭梯度法traincgfPloak-Ribiere 共轭梯度法traincgpPowell-Beale 共轭梯度法traincgb量化共轭梯度法trainscg拟牛顿算法trainbfg一步正割算法trainossLevenberg-Marquardt 法trainlm由于这只是改变程序中的训练算法,其他不变,所以为了简洁,在本程序中只选取了四种训练算法,分别是梯度下降法 traingd、弹性梯度下降法 trainrp、拟牛顿算法 trainbfg 和 Levenberg-Marquardt 法 trainlm,只更改不同的训练算法来构造节点,程序如下,得到不同训练算法下的仿真图如图 1 所示。clear all;close all;clc;a=1,c=1;%在此改变 a,c 的值layer_number=20;%在此改隐含层的个数u=-4:0.001:4;t=exp(-a*u).*sin(c*u);%这里是矩阵相乘,要用点乘net=newff(minmax(u),layer_number,1,tansig,purelin,traingd);%梯度下降法y1=sim(net,u);%未训练直接输出net1=newff(minmax(u),layer_number,1,tansig,purelin,traingd);%梯度下降法net2=newff(minmax(u),layer_number,1,tansig,purelin,trainrp);%弹性梯度下降法net3=newff(minmax(u),layer_number,1,tansig,purelin,trainbfg);%拟牛顿算法net4=newff(minmax(u),layer_number,1,tansig,purelin,trainlm);%Levenberg-Marquardtnet.trainParam.show=50;net.trainparam.epochs=1000;net.trainparam.goal=0.01;net1=train(net1,u,t);%采用梯度下降法训练节点net2=train(net2,u,t);%采用弹性梯度下降法训练节点net3=train(net3,u,t);%采用拟牛顿算法训练节点net4=train(net4,u,t);%采用 Levenberg-Marquardt 法训练节点y2_1=sim(net1,u);y2_2=sim(net2,u);y2_3=sim(net3,u);y2_4=sim(net4,u);subplot(2,2,1)plot(u,t,b-,u,y1,g:,u,y2_1,r-);title(1、采用梯度下降法的仿真结果图);xlabel(input_u);ylabel(output_y);legend(目标函数曲线,未经训练 BP 网络逼近曲线,训练后的 BP 网络逼近曲线);subplot(2,2,2)plot(u,t,b-,u,y1,g:,u,y2_2,r-);title(2、采用弹性梯度下降法的仿真结果图);xlabel(input_u);ylabel(output_y);legend(目标函数曲线,未经训练 BP 网络逼近曲线,训练后的 BP 网络逼近曲线);subplot(2,2,3)plot(u,t,b-,u,y1,g:,u,y2_3,r-);title(3、采用拟牛顿算法的仿真结果图);xlabel(input_u);ylabel(output_y);legend(目标函数曲线,未经训练 BP 网络逼近曲线,训练后的 BP 网络逼近曲线);subplot(2,2,4)plot(u,t,b-,u,y1,g:,u,y2_4,r-);title(4、采用 Levenberg-Marquardt 法的仿真结果图);xlabel(input_u);ylabel(output_y);legend(目标函数曲线,未经训练 BP 网络逼近曲线,训练后的 BP 网络逼近曲线);仿真结果图:1、采用梯度下降法的仿真结果图504030outputy2、采用弹性梯度下降法的仿真结果图504030outputy目标函数曲线未经训练BP网络逼近曲线训练后的BP网络逼近曲线目标函数曲线未经训练BP网络逼近曲线训练后的BP网络逼近曲线20100-10-420100-10-4-3-2-10inputu1234-3-2-10inputu12343、采用拟牛顿算法的仿真结果图504030outputy4、采用Levenberg-Marquardt法的仿真结果图504030outputy目标函数曲线未经训练BP网络逼近曲线训练后的BP网络逼近曲线目标函数曲线未经训练BP网络逼近曲线训练后的BP网络逼近曲线20100-10-420100-10-4-3-2-10inputu1234-3-2-10inputu1234图 1 改变不同训练算法仿真结果从图 1 中可以看出,改变不同训练算法得到的结果有所区别。二、改变参数二、改变参数 a,ca,c 的值,观察效果的值,观察效果选定一种训练算法,只改变 a,c 的值,其它不变,在本文中,对 c=1,a=0.3,0.5,0.7,1,1.5 的情况和 a=1,c=0.3,0.5,0.7,1,1.5,3 的情况进行了仿真,MATLAB程序如下,结果分别如图 2 和图 3。clear all;close all;clc;a=1;c=1;%在此改变 a,c 的值layer_number=20;%在此改隐含层的个数u=-4:0.001:4;t=exp(-a*u).*sin(c*u);%这里是矩阵相乘,要用点乘net=newff(minmax(u),layer_number,1,tansig,purelin,traingd);%梯度下降法y1=sim(net,u);%未训练直接输出net=newff(minmax(u),layer_number,1,tansig,purelin,traingd);net.trainParam.show=50;net.trainparam.epochs=1000;net.trainparam.goal=0.01;net=train(net,u,t);y2=sim(net,u);%采用梯度下降法训练节点plot(u,t,-,u,y1,:,u,y2,-);title(c=1,a=1 的仿真结果图);xlabel(input_u);ylabel(output_y);legend(目标函数曲线,未经训练 BP 网络逼近曲线,训练后的 BP 网络逼近曲线);c=1,a=0.3 的 仿 真 结 果 图4目 标 函 数 曲 线未 经 训 练 BP网 络 逼 近 曲 线训 练 后 的 BP网 络 逼 近 曲 线32outputy10-1-2-3-4-3-2-10inputu1234目 标 函 数 曲 线未 经 训 练 BP网 络 逼 近 曲 线训 练 后 的 BP网 络 逼 近 曲 线c=1,a=0.5 的 仿 真 结 果 图864outputy20-2-4-4-3-2-10inputu1234c=1,a=0.7 的 仿 真 结 果 图1412108目 标 函 数 曲 线未 经 训 练 BP网 络 逼 近 曲 线训 练 后 的 BP网 络 逼 近 曲 线outputy6420-2-4-4-3-2-10inputu1234目 标 函 数 曲 线未 经 训 练 BP网 络 逼 近 曲 线训 练 后 的 BP网 络 逼 近 曲 线c=1,a=1 的 仿 真 结 果 图504030outputy20100-10-4-3-2-10inputu1234c=1,a=1.5 的 仿 真 结 果 图350300250200目 标 函 数 曲 线未 经 训 练 BP网 络 逼 近 曲 线训 练 后 的 BP网 络 逼 近 曲 线outputy150100500-50-4-3-2-10inputu1234图 2c=1,a=0.3,0.5,0.7,1,1.5 时的仿真结果由以上 5 副仿真图可知,在c 值确定,a=1 的时候,经过梯度下降法 traingd训练之后得到的结果较好。a=1,c=0.3 的 仿 真 结 果 图100-10outputy-20-30-40-50-60-4目 标 函 数 曲 线未 经 训 练 BP网 络 逼 近 曲 线训 练 后 的 BP网 络 逼 近 曲 线-3-2-10inputu1234a=1,c=0.5 的 仿 真 结 果 图100-10outputy-20-30-40-50-4目 标 函 数 曲 线未 经 训 练 BP网 络 逼 近 曲 线训 练 后 的 BP网 络 逼 近 曲 线-3-2-10inputu1234a=1,c=0.7 的 仿 真 结 果 图1050outputy-5-10-15-20-25-4目 标 函 数 曲 线未 经 训 练 BP网 络 逼 近 曲 线训 练 后 的 BP网 络 逼 近 曲 线-3-2-10inputu1234a=1,c=1 的 仿 真 结 果 图50目 标 函 数 曲 线未 经 训 练 BP网 络 逼 近 曲 线训 练 后 的 BP网 络 逼 近 曲 线4030outputy20100-10-4-3-2-10inputu1234目 标 函 数 曲 线未 经 训 练 BP网 络 逼 近 曲 线训 练 后 的 BP网 络 逼 近 曲 线a=1,c=1.5 的 仿 真 结 果 图30252015outputy1050-5-10-4-3-2-10inputu1234a=1,c=3 的 仿 真 结 果 图50目 标 函 数 曲 线未 经 训 练 BP网 络 逼 近 曲 线训 练 后 的 BP网 络 逼 近 曲 线4030outputy20100-10-20-4-3-2-10inputu1234图 3a=1,c=0.3,0.5,0.7,1,1.5,3 时的仿真结果对比图 3 的结果图,可知在 a 固定时,当 c=1 时,经过梯度下降法 traingd训练之后得到的结果较好。三、三、改变隐层神经网络个数,观察效果改变隐层神经网络个数,观察效果选定梯度下降法 traingd 训练算法来训练样本,只改变隐层神经网络个数,其它不变。在本文中,对隐层神经网络个数layer_number为 5、10、20、30 的情况进行了仿真,MATLAB程序如下,结果分别如图 4。clear all;close all;clc;a=1;c=1;%在此改变 a,c 的值layer_number=5;%在此改隐含层的个数u=-4:0.001:4;t=exp(-a*u).*sin(c*u);%这里是矩阵相乘,要用点乘net=newff(minmax(u),layer_number,1,tansig,purelin,traingd);%梯度下降法y1=sim(net,u);%未训练直接输出net=newff(minmax(u),layer_number,1,tansig,purelin,traingd);net.trainParam.show=50;net.trainparam.epochs=1000;net.trainparam.goal=0.01;net=train(net,u,t);y2=sim(net,u);%采用梯度下降法训练节点plot(u,t,-,u,y1,:,u,y2,-);title(隐层神经网络个数 layer_number=5 时结果图);xlabel(input_u);ylabel(output_y);legend(目标函数曲线,未经训练 BP 网络逼近曲线,训练后的 BP 网络逼近曲线);隐 层 神 经 网 络 个 数 layernumber=5 时 结 果 图50目 标 函 数 曲 线未 经 训 练 BP网 络 逼 近 曲 线训 练 后 的 BP网 络 逼 近 曲 线4030outputy20100-10-4-3-2-10inputu1234隐 层 神 经 网 络 个 数 layernumber=10 时 结 果 图50目 标 函 数 曲 线未 经 训 练 BP网 络 逼 近 曲 线训 练 后 的 BP网 络 逼 近 曲 线4030outputy20100-10-4-3-2-10inputu1234目 标 函 数 曲 线未 经 训 练 BP网 络 逼 近 曲 线训 练 后 的 BP网 络 逼 近 曲 线隐 层 神 经 网 络 个 数 layernumber=20 时 结 果 图504030outputy20100-10-4-3-2-10inputu1234隐 层 神 经 网 络 个 数 layernumber=30 时 结 果 图50目 标 函 数 曲 线未 经 训 练 BP网 络 逼 近 曲 线训 练 后 的 BP网 络 逼 近 曲 线4030outputy20100-10-4-3-2-10inputu1234图 4 改变隐层神经网络个数的结果从以上结果可知,在其他参数不变,只改变隐层神经网络个数的情况下,在隐层神经网络个数 layer_number=20 时,获得的训练结果较理想。四、尝试:加入噪声的训练效果本文采用 randn 函数产生一个和输入变量同维度的一个均值为 0 方差为 1 的正态分布的随机噪声,然后加入到函数中,其它参数不变,MATLAB程序如下,结果如图 5 所示。clear all;close all;clc;a=1;c=1;%在此改变 a,c 的值layer_number=20;%在此改隐含层的个数u=-4:0.001:4;ul=length(u);noise=randn(1,ul);%产生一个均值为 0 方差为 1 的正态分布的随机噪声t=exp(-a*u).*sin(c*u)+noise;%加入随机噪声net=newff(minmax(u),layer_number,1,tansig,purelin,traingd);%梯度下降法y1=sim(net,u);%未训练直接输出net=newff(minmax(u),layer_number,1,tansig,purelin,traingd);net.trainParam.show=50;net.trainparam.epochs=1000;net.trainparam.goal=0.01;net=train(net,u,t)y2=sim(net,u)%采用梯度下降法训练节点plot(u,t,u,y1,:,u,y2,)title(加入随机噪声时的结果图)xlabel(input_u)ylabel(output_y)legend(目标函数曲线,未经训练 BP 网络逼近曲线,训练后的 BP 网络逼近曲线)加 入 随 机 噪 声 时 的 结 果 图50目 标 函 数 曲 线未 经 训 练 BP网 络 逼 近 曲 线训 练 后 的 BP网 络 逼 近 曲 线4030outputy20100-10-20-4-3-2-10inputu1234图 5 加入随机噪声之后的结果从图 5 可以看出,加入随机噪声之后,训练之后得到的曲线还是较好的。

    注意事项

    本文(神经网络大作业 函数拟合.pdf)为本站会员(修****)主动上传,淘文阁 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知淘文阁 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

    本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

    工信部备案号:黑ICP备15003705号 © 2020-2023 www.taowenge.com 淘文阁 

    收起
    展开