粒子群算法(PSO)优化的BP神经网络预测回归——附代码

这篇具有很好参考价值的文章主要介绍了粒子群算法(PSO)优化的BP神经网络预测回归——附代码。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目录

摘要:

1.BP模型神经网络模型

2.粒子群优化算法(PSO)

伪代码实现

3.粒子群算法结合BP神经网络(PSO-BP)

4.程序运行结果

5.本文Matlab代码


摘要:

BP神经网络是一种常见的多层前馈神经网络,本文通过粒子群算法(PSO)对BP神经网络的网络参数进行寻优,得到最优化的网络参数,并与未使用PSO的BP网络对同一测试样本进行预测,对比分析并突出PSO-BP的优越性。本文章代码可改性强,注释详细,替换输入与输出后即可满足不同的任务,实现自己想要的功能,适合新入门神经网络的同学学习。

1.BP模型神经网络模型

粒子群算法(PSO)优化的BP神经网络预测回归——附代码

粒子群算法(PSO)优化的BP神经网络预测回归——附代码

2.粒子群优化算法(PSO)

        粒子群算法的思想源于对鸟群觅食行为的研究,鸟群通过集体的信息共享使群体找到最优的目的地。如下图,设想这样一个场景:鸟群在森林中随机搜索食物,它们想要找到食物量最多的位置。但是所有的鸟都不知道食物具体在哪个位置,只能感受到食物大概在哪个方向。每只鸟沿着自己判定的方向进行搜索,并在搜索的过程中记录自己曾经找到过食物且量最多的位置,同时所有的鸟都共享自己每一次发现食物的位置以及食物的量,这样鸟群就知道当前在哪个位置食物的量最多。在搜索的过程中每只鸟都会根据自己记忆中食物量最多的位置和当前鸟群记录的食物量最多的位置调整自己接下来搜索的方向。鸟群经过一段时间的搜索后就可以找到森林中哪个位置的食物量最多(全局最优解)。

在找到这两个最优值时,粒子根据如下的公式来更新自己的速度和新的位置粒子群算法(PSO)优化的BP神经网络预测回归——附代码

v[ ] 是粒子的速度,present[ ] 是当前粒子的位置。pbest[ ] 和 gbest[ ] 如前定义。rand() 是介于(0,1)之间的随机数。c1,c2是学习因子。通常c1=c2=2。

伪代码实现

For each particle

____Initialize particle

END

Do

____For each particle

________Calculate fitness value

________If the fitness value is better than the best fitness value (pBest) in history

____________set current value as the new pBest

____End

____Choose the particle with the best fitness value of all the particles as the gBest

____For each particle

________Calculate particle velocity according equation (a)

________Update particle position according equation (b)

____End

While maximum iterations or minimum error criteria is not attained

在每一维粒子的速度都会被限制在一个最大速度Vmax,如果某一维更新后的速度超过用户设定的Vmax,那么这一维的速度就被限定为Vmax。

3.粒子群算法结合BP神经网络(PSO-BP)

BP神经网络的隐藏节点通常由重复的前向传递和反向传播的方式来决定,通过修改或构造训练方式改隐藏的节点数,相应的初始权重和阈值也会随之变化,从而影响网络的收敛和学习效率。 为了减少影响,通过采用基于粒子群算法的BP神经网络模型对权重和阈值的调整进行优化,从而加快网络的收敛速度和提高网络的学习效率。具体的计算流程如下:

粒子群算法(PSO)优化的BP神经网络预测回归——附代码

4.程序运行结果

粒子群算法(PSO)优化的BP神经网络预测回归——附代码文章来源地址https://www.toymoban.com/news/detail-410282.html

5.本文Matlab代码

到了这里,关于粒子群算法(PSO)优化的BP神经网络预测回归——附代码的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包