【BP数据预测】基于matlab布谷鸟算法优化BP神经网络数据预测【含Matlab源码 1121期】
一、布谷鸟算法简介
布谷鸟算法,英文叫做Cuckoo search (CS algorithm)。首先还是同样,介绍一下这个算法的英文含义, Cuckoo是布谷鸟的意思,啥是布谷鸟呢,是一种叫做布谷的鸟,o(∩_∩)o ,这种鸟她妈很懒,自己生蛋自己不养,一般把它的宝宝扔到别的种类鸟的鸟巢去。但是呢,当孵化后,遇到聪明的鸟妈妈,一看就知道不是亲生的,直接就被鸟妈妈给杀了。于是这群布谷鸟宝宝为了保命,它们就模仿别的种类的鸟叫,让智商或者情商极低的鸟妈妈误认为是自己的亲宝宝,这样它就活下来了。
布谷鸟搜索算法(Cuckoo Search, CS)是2009年Xin-She Yang 与Suash Deb在《Cuckoo Search via Levy Flights》一文中提出的一种优化算法。布谷鸟算法是一种集合了布谷鸟巢寄生性和莱维飞行(Levy Flights)模式的群体智能搜索技术,通过随机游走的方式搜索得到一个最优的鸟巢来孵化自己的鸟蛋。这种方式可以达到一种高效的寻优模式。
1 布谷鸟的巢寄生性
2 莱维飞行
图1.模拟莱维飞行轨迹示意图
3 布谷鸟搜索算法的实现过程
4 CS-BP神经网络
CS算法具有提高算法的局部和全局寻优的等优点。为了改善BP神经网络对初始权值和阈值的依赖问题,将CS算法运用到BP神经网络中,在网络进行训练前,运用CS算法对网络初始权值和阈值进行寻优,得到的最优解再赋
值给网络进行训练,这种方法可以有效地避免BP神经网络 因为初始权值和阈值而容易陷入局部最小的问题,同时改善了BP神经网络的收敛速度。 总算法流程如图2所示。CS算法优化 BP神经网络算法步骤: 1)初始化鸟巢数n、Pa 及最大迭代次数Nmax等参数; 2)随机产生n个鸟巢的初始位置:qi(0)= [x(0) 1 ,x(0) 2 , …,xn(0)]T ,该位置与BP神经网络初始阈值和权值相对应,BP神经网络训练得到的误差作为其适应度值,计算鸟巢初
始位置的适应度值; 3)根据适应度值找出当代的最佳鸟巢的位置xd(0),并 根据式 (15)更新鸟巢位置,得到新的鸟巢位置; 4)计算新鸟巢位置,得 出 较 优 的 一 组 鸟 巢 位 置ek = [x(k) 1 ,x(k) 2 ,…,xn(k)]T ; 5)将r与Pa 进行比较,保留ek 中较小的的Pa 鸟巢, 并更新较大Pa 鸟巢位置,得出一组新鸟巢位置,并用好的 替代ek 中较差的鸟巢位置,得出新一组较佳鸟巢位置qk= [x(k) 1 ,x(k) 2 ,…,xn(k)]T ; 6)找出qk 中最佳的一个鸟巢位置xd(k),如果达到最大 迭代次数,则停止搜索,并输出最佳位置xd(k),否则,回到 步骤3)继续执行;
7)根据最佳鸟巢位置xd(k) 对应的参数作为 BP 神经网 络初始阈值和权值,对训练集进行训练。
二、部分源代码
%% 初始化
clear
close all
- 1
- 2
- 3
- 4
- 5
- 6
三、运行结果
四、matlab版本及参考文献
1 matlab版本
2014a
2 参考文献
[1] 包子阳,余继周,杨杉.智能优化算法及其MATLAB实例(第2版)[M].电子工业出版社,2016.
[2]张岩,吴水根.MATLAB优化算法源代码[M].清华大学出版社,2017.
[3]周品.MATLAB 神经网络设计与应用[M].清华大学出版社,2013.
[4]陈明.MATLAB神经网络原理与实例精解[M].清华大学出版社,2013.
[5]方清城.MATLAB R2016a神经网络设计与应用28个案例分析[M].清华大学出版社,2018.
[6]魏新尧,佘世刚,容伟,刘爱琦.基于布谷鸟算法优化BP神经网络的锂电池健康状态预测[J].计算机测量与控制. 2021,29(04)
文章来源: qq912100926.blog.csdn.net,作者:海神之光,版权归原作者所有,如需转载,请联系作者。
原文链接:qq912100926.blog.csdn.net/article/details/124577685
- 点赞
- 收藏
- 关注作者
评论(0)