一、灰狼算法及BP神经网络简介

1 BP算法

BP (Back—Propagation) 神经网络是由Rumelhart, McClelland提出的概念, 其结构简单、可操作性强, 具有非线性映射能力, 是目前应用最广泛的人工神经网络。但BP算法存在收敛速度慢、容易陷入局部最优等缺陷, 在很大程度上影响了预测结果。BP模型如图1所示, 该模型包括输入层、隐层、输出层, 其中W、V为连接权矩阵, 跨层的神经元之间则不连接。

【优化预测】基于matlab灰狼算法优化BP神经网络预测【含Matlab源码 1720期】_matlab

图1 BP神经网络结构图

BP神经网络算法由信号的正向传播和误差的反向传播两个过程组成。正向传播, 输入信号通过隐含层处理, 经过非线性变换, 转向输出层产生输出信号, 若输出值与期望值不符, 则转入反向传播过程。误差反传是将输出误差信号通过隐含层向输入层逐层反传, 通过修改各神经元的权值, 使误差沿梯度方向下降, 这样反复学习训练, 直到输出的误差达到要求或者达到最大迭代次数, 训练停止。

(1)权值初始化

将网络中的所有权值随机初始化。

(2) 根据实例的输入, 计算输出层每个单元的输出。

网络的实际输出及隐层单元的状态Okj, 由公式 (1) 计算:

【优化预测】基于matlab灰狼算法优化BP神经网络预测【含Matlab源码 1720期】_matlab_02

公式中, θj是阈值, 一般可采用Sigmoid函数, 即公式 (2) 作为激励函数作用于它。

【优化预测】基于matlab灰狼算法优化BP神经网络预测【含Matlab源码 1720期】_算法_03

(3) 计算网络各层误差信号

对于输出层的每个单元k, 误差δk, 由公式 (3) 计算:

【优化预测】基于matlab灰狼算法优化BP神经网络预测【含Matlab源码 1720期】_神经网络_04

Ok是单元k的实际输出值, Ok (1-Ok) 是Logistic函数的导数, 而Tk是基于k给定训练元组的已知目标值。

而对于隐藏层单元h的误差由公式 (4) 计算:

【优化预测】基于matlab灰狼算法优化BP神经网络预测【含Matlab源码 1720期】_matlab_05

(4)调整各层的权值

公式 (5) 是权值的更新公式, 公式 (6) 阈值的更新公式。

【优化预测】基于matlab灰狼算法优化BP神经网络预测【含Matlab源码 1720期】_神经网络_06

(5)核查算法是否符合结束条件

如果网络总误差满足设定的精度要求或符合结束条件, 训练过程结束。否则, 继续进行下一轮训练。

2 GWO算法

GWO算法是Mirjalil等人2014年提出的一种新型群智能优化算法, 该算法通过模拟自然界中灰狼的狩猎跟踪、追捕、包围和攻击等建立一个数学模型, 进而完成最优化工作。整个狼群按照适应度值被分为最优灰狼α、次优灰狼β、第三优灰狼β和其他狼ω四个等级。在捕食过程中α、β、δ灰狼追捕猎物, ω狼追随前三者进向着目标搜索。捕食过程中, 灰狼个体与猎物的距离为:

【优化预测】基于matlab灰狼算法优化BP神经网络预测【含Matlab源码 1720期】_权值_07

公式中t表示迭代次数;Xp (t) 是猎物的位置, X (t) 表示第t代时灰狼的位置, D表示猎物与灰狼之间的距离, C=2r1。

灰狼位置更新为:

【优化预测】基于matlab灰狼算法优化BP神经网络预测【含Matlab源码 1720期】_神经网络_08

其中, a是收敛因子, 取值[0, 2], max是最大迭代次数;r2和r2均是[0, 1]的随机数:当|A|>1时, 灰狼群体将搜索范围扩大, 进行全局搜索;|A|<1时, 灰狼群体将包围圈缩小, 进行局部搜索。

在狼群中, 利用α、β、δ这三头狼的位置跟踪猎物的数学描述如下:

【优化预测】基于matlab灰狼算法优化BP神经网络预测【含Matlab源码 1720期】_神经网络_09

式 (12) 和式 (13) 定义了狼群内ω与α、β、δ的距离关系。

【优化预测】基于matlab灰狼算法优化BP神经网络预测【含Matlab源码 1720期】_matlab_10

式 (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灰狼算法优化BP神经网络预测【含Matlab源码 1720期】_神经网络_11

【优化预测】基于matlab灰狼算法优化BP神经网络预测【含Matlab源码 1720期】_权值_12

【优化预测】基于matlab灰狼算法优化BP神经网络预测【含Matlab源码 1720期】_matlab_13

四、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]于淑香,温一军.基于GWO-BP算法的软件缺陷预测模型[J].安徽电子信息职业技术学院学报. 2018,17(06)