第一范文网 - 专业文章范例文档资料分享平台

【2019年整理】基于matlab实现BP神经网络模型仿真

来源:用户分享 时间:2025/7/9 21:36:00 本文由loading 分享 下载这篇文档手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:xxxxxxx或QQ:xxxxxx 处理(尽可能给您提供完整文档),感谢您的支持与谅解。

(2) 模型训练方法为有动量的梯度下降法,函数为traingdm

BP网络预测输出1预测输出期望输出0.5 函数输出0-0.5-1-1.5 -1-0.8-0.6-0.4-0.200.20.40.60.81样本

(3) 模型训练方法为有自适应lr的梯度下降法,函数为traingda

BP网络预测输出1预测输出期望输出0.5 函数输出0-0.5-1-1.5 -1-0.8-0.6-0.4-0.200.20.40.60.81样本

五、 评价

(1) 初始值的影响

本文建立BP神经网络模型时用的是newff()函数,由于newff()的随意性,所以基本上每一次的训练结果都是不同的。前馈型神经网络在训练之前必须要对权值和阈值进行初始化,newff()可以自动完成这一过程,但是,权值和阈值的初始化时随机的,这里就不详细研究了。

(2) 训练函数的影响

从上文所给的结果图可以看出,训练函数对模型训练的影响是显著的,网络训练方法分别用了梯度下降法、有动量的梯度下降法和有自适应lr的梯度下降法,可以看到用梯度下降法要训练24961步才能达到要求的训练精度,而使用有动量的梯度下降法和有自适应lr的梯度下降法分别只需要11199步和830步。大幅度的缩减了训练次数,但得到的训练过的模型一样精准。 (3) 稳定性

BP神经网络模型有一下几点不足:

首先,由于学习速率是固定的,因此网络的收敛速度慢,需要较长的训练时间。对于一些复杂问题,BP算法需要的训练时间可能非常长,这主要是由于学习速率太小造成的,可采用变化的学习速率或自适应的学习速率加以改进。

其次,BP算法可以使权值收敛到某个值,但并不保证其为误差平面的全局最小值,这是因为采用梯度下降法可能产生一个局部最小值。对于这个问题,可以采用附加动量法来解决。

再次,网络隐含层的层数和单元数的选择尚无理论上的指导,一般是根据经验或者通过反复实验确定。因此,网络往往存在很大的冗余性,在一定程度上也增加了网络学习的负担。

最后,网络的学习和记忆具有不稳定性。也就是说,如果增加了学习样本,训练好的网络就需要从头开始训练,对于以前的权值和阈值是没有记忆的。但是可以将预测、分类或聚类做的比较好的权值保存。 (4) 泛化能力

BP神经网络模型的泛化能力很弱,而且学习和记忆具有不稳定性,所以在实际的应用中,原始的BP算法很难胜任。本文最后给出径向基函数网络的仿真结果及源代码,并与BP神经网络模型进行比较。

径向基函数网络的仿真matlab源代码如下:

clear clc x=[];%输入 y=[];%输出 p=x';t=y'; net=newrb(p,t); Y=sim(net,p);

figure(1) plot(p,Y,':og'); hold on plot(p,t,'-*');

legend('预测输出','期望输出')

title('径向基函数网络输出','fontsize',12) ylabel('函数输出','fontsize',12) xlabel('样本','fontsize',12)

error=Y-t;

figure(2) plot(error,'-*')

title('径向基函数网络预测误差','fontsize',12) ylabel('误差','fontsize',12) xlabel('样本','fontsize',12)

结果如下图所示:

8x 105径向基函数网络预测输出 预测输出期望输出76函数输出5432 1998200020022004200620082010样本

【2019年整理】基于matlab实现BP神经网络模型仿真.doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.diyifanwen.net/c2eion65rb48az813jgo32teb88j4b1005rt_3.html(转载请注明文章来源)
热门推荐
Copyright © 2012-2023 第一范文网 版权所有 免责声明 | 联系我们
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:xxxxxx 邮箱:xxxxxx@qq.com
渝ICP备2023013149号
Top