一、灰狼算法及BP神经网络简介
1 BP算法
BP (Back—Propagation) 神经网络是由Rumelhart, McClelland提出的概念, 其结构简单、可操作性强, 具有非线性映射能力, 是目前应用最广泛的人工神经网络。但BP算法存在收敛速度慢、容易陷入局部最优等缺陷, 在很大程度上影响了预测结果。BP模型如图1所示, 该模型包括输入层、隐层、输出层, 其中W、V为连接权矩阵, 跨层的神经元之间则不连接。
图1 BP神经网络结构图
BP神经网络算法由信号的正向传播和误差的反向传播两个过程组成。正向传播, 输入信号通过隐含层处理, 经过非线性变换, 转向输出层产生输出信号, 若输出值与期望值不符, 则转入反向传播过程。误差反传是将输出误差信号通过隐含层向输入层逐层反传, 通过修改各神经元的权值, 使误差沿梯度方向下降, 这样反复学习训练, 直到输出的误差达到要求或者达到最大迭代次数, 训练停止。
(1)权值初始化
将网络中的所有权值随机初始化。
(2) 根据实例的输入, 计算输出层每个单元的输出。
网络的实际输出及隐层单元的状态Okj, 由公式 (1) 计算:
公式中, θj是阈值, 一般可采用Sigmoid函数, 即公式 (2) 作为激励函数作用于它。
(3) 计算网络各层误差信号
对于输出层的每个单元k, 误差δk, 由公式 (3) 计算:
Ok是单元k的实际输出值, Ok (1-Ok) 是Logistic函数的导数, 而Tk是基于k给定训练元组的已知目标值。
而对于隐藏层单元h的误差由公式 (4) 计算:
(4)调整各层的权值
公式 (5) 是权值的更新公式, 公式 (6) 阈值的更新公式。
(5)核查算法是否符合结束条件
如果网络总误差满足设定的精度要求或符合结束条件, 训练过程结束。否则, 继续进行下一轮训练。
2 GWO算法
GWO算法是Mirjalil等人提出的一种新型群智能优化算法, 该算法通过模拟自然界中灰狼的狩猎跟踪、追捕、包围和攻击等建立一个数学模型, 进而完成最优化工作。整个狼群按照适应度值被分为最优灰狼α、次优灰狼β、第三优灰狼β和其他狼ω四个等级。在捕食过程中α、β、δ灰狼追捕猎物, ω狼追随前三者进向着目标搜索。捕食过程中, 灰狼个体与猎物的距离为:
公式中t表示迭代次数;Xp (t) 是猎物的位置, X (t) 表示第t代时灰狼的位置, D表示猎物与灰狼之间的距离, C=2r1。
灰狼位置更新为:
其中, a是收敛因子, 取值[0, 2], max是最大迭代次数;r2和r2均是[0, 1]的随机数:当|A|>1时, 灰狼群体将搜索范围扩大, 进行全局搜索;|A|<1时, 灰狼群体将包围圈缩小, 进行局部搜索。
在狼群中, 利用α、β、δ这三头狼的位置跟踪猎物的数学描述如下:
式 (12) 和式 (13) 定义了狼群内ω与α、β、δ的距离关系。
式 (13) 根据α、β、δ的位置计算ω狼的最终位置。
3 GWO优化BP神经网络
由于BP神经网络采用均方误差梯度下降方向进行收敛, 因此容易陷入局部最优, 且收敛速度慢, 而且BP神经网络对初始化参数中的权值和阀值具有较大的敏感性。本文采用GWO优化BP神经网络, 以达到克服BP算法的缺陷, 避免陷入局部最优, 而且使收敛加速。
用GWO优化BP神经网络, 即将灰狼的位置信息作为BP神经网络的权重和阈值, 灰狼不断对猎物的位置进行判断和更新, 相当于在不断更新BP神经网络的阈值和权重, 通过多次迭代, 最终计算全局最优结果。优化BP神经网络具体步骤:
1.初始化参数。包括灰狼种群大小、灰狼个体位置信息的维度、灰狼维度的上界和下界, 最大迭代次数、随机初始化灰狼位置。
2.将灰狼的位置映射给BP神经网络, 按照公式计算适应度
3.适应度值的计算:狼群内部按照等级被分为最优、次优、第三优、和普通狼四组, 并根据与的位置, 用公式 (11) ~ (13) 更新的位置信息, 并更新参数a、A和C的值。
4.判断灰狼个体的每一维度越界情况, 如有越界, 把灰狼维度的上界或下界设置为越界的值。
5.判断迭代次数:如果小于最大迭代次数, 重复步骤2-步骤5, 继续下一次迭代, 直到满足条件;否则结束算法。
二、部分源代码
1. 代码注释清楚。2. 提供代码使用教程,可以换用个人数据,以及运行得到GWO-BP相关图像与对指定数据的预测结果。3. 如有问题,请私信我。
三、运行结果
四、matlab版本及参考文献
1 matlab版本
a
2 参考文献
[1] 包子阳,余继周,杨杉.智能优化算法及其MATLAB实例(第2版)[M].电子工业出版社,.
[2]张岩,吴水根.MATLAB优化算法源代码[M].清华大学出版社,.
[3]周品.MATLAB 神经网络设计与应用[M].清华大学出版社,.
[4]陈明.MATLAB神经网络原理与实例精解[M].清华大学出版社,.
[5]方清城.MATLAB Ra神经网络设计与应用28个案例分析[M].清华大学出版社,.
[6]于淑香,温一军.基于GWO-BP算法的软件缺陷预测模型[J].安徽电子信息职业技术学院学报. ,17(06)