Matlab|改进的遗传算法优化BP神经网络(回归拟合

在这里插入图片描述

00 目录

1 问题导入
2 代码目录说明
3 BP神经网络预测模型
4 GA优化BP神经网络模型
5 改进GA优化BP神经网络模型
5 结果展示
6 源码获取
7 展望

01 问题导入

本题要求建立回归模型,依据混凝土的各种性能指标数据(输入:7个指标 103个样本)对混凝土抗压强度(输出 103个样本)进行预测。

数据格式如下,attributes为输入,strength为输出:
在这里插入图片描述
输入数据是.mat文件,若要导入excel文件,可用xlsread语句输入数据。

本文首先采用BP神经网络建立输入与输出的模型,考虑到BP神经网络随的初始连接权值和阈值是随机产生,而这些参数对网络训练影响很大,因此引入遗传算法优化BP神经网络的权值与阈值,同时由于遗传算法容易早熟、陷入局部最优,因此选择在此方法上进行改进,引入多种群遗传算法优化BP神经网络,结果显示多种群遗传算法的预测性能较之GABP和BP方法更佳。

多种群遗传算法详解

02 代码目录说明

本文所用代码文件目录如下,Main_code.m为主程序

在这里插入图片描述

03 BP神经网络预测模型

BP(BackPropagation)神经网络是一种按误差逆传播算法训练的多层前馈网络,其可通过反向传播来不断调整网络的权值和阈值,使网络的误差平方和最小,BP神经网络模型拓扑结构包括输入层、隐含层和输出层,其拓扑图如下:
在这里插入图片描述

同时BP神经网络的算法具有比较良好的自适应性和分类识别等能力。神经网络可以看作是一个函数的映射,适用于有明确的输入与输出的对应关系,但其中的函数不容易确定的问题,针对本文的混凝土抗压强度预测问题,即可将混凝土的7种性能指标数据作为输入,而混凝土抗压强度作为输出的多输入单输出的函数映射问题。

3.1 三层BP神经网络结构

我们建立三层BP网络,其中输入节点为m个,输出节点为c个,隐含节点为r个,可得网络输入与输出的关系如下所示:

在这里插入图片描述

其中,wij为连接权值, 为阈值,yk为期望输出, 为神经网络的实际输出。三层BP神经网络结构示意图如下图所示:

在这里插入图片描述

3.2 神经网络的参数

BP 神经网络时间序列预测模型中的参数主要包括:最大训练步数net.trainParam.epochs、训练结果的间隔步数 net.trainParam.show、学习速率net.trainParam.lr、动子因量 net.trainParam.mc、训练目标误差 net.trainParam.goal、传递函数等,本文中设置的 BP 神经网络预测模型中的参数如下所示:
在这里插入图片描述

04 GA优化BP神经网络模型

4.1 预测模型的原理

遗传算法是一种并行随机搜索优化方法。遗传算法优化 BP 网络,包括 BP神经网络结构的确定、遗传算法的优化和 BP 神经网络的预测三部分内容 ,其结构图下:

在这里插入图片描述

因为遗传算法优化参数是BP神经网络的初始权值和阈值,因此只要网络结构已知,权值和阈值个数就已知了。神经网络的权值和阈值一般是通过随机初始化,这个初始化参数对网络训练影响很大,但又无法准确获得,因此引入遗传算法就是为了优化出最佳的初始权值和阈值,然后经过BP算法的训练得到模型预测输出值。

4.2 遗传优化的神经网络预测模型的建立

遗传算法 GA 优化 BP 神经网络是指利用遗传算法优化 BP 网络的初始权值和阈值,优化后的 BP 网络能够取得更好的预测输出。遗传算法 GA 优化 BP网络的主要流程如下图所示。
在这里插入图片描述

其中,以BP神经网络的预测误差作为GA算法的适应度,预测误差越小则代表适应度越高,个体越优秀。

4.3 算法参数设置

BP神经网络部分的参数保持不变,GA部分的参数设置如下

在这里插入图片描述

05 改进GA优化BP神经网络模型

本文的改进GA算法采用多种群遗传算法,多种群遗传算法相对于遗传算法的优势如下:

各种群取不同的控制参数,MPGA弥补了SGA依赖于交叉算子Pc、变异算子Pm的缺陷,通过设有不同控制参数的种群协同进化,从而兼顾算法的全局搜索和局部搜索。

各种群相对独立,种群交互通过移民算子联系。移民算子将各种群的最优个体定期引入其它种群中,实现种群之间的信息交换,这也是MPGA的特点所在。

精华种群和其它种群不同,每一代进化后,通过人工选择算子选出种群的最优个体放入精华种群,并且精华种群不进行选择、交叉、变异等操作,保证进化过程中最优个体不被破坏和丢失,并且精华种群的最优个体最少保持代数将作为算法终止判据,该判据充分利用了遗传算法在进化中的知识积累,较之最大遗传代数更为合理。

因此可以对遗传算法的优化性能进行提高。多种群遗传算法优化BP神经网络算法的参数部分设置与上文保持一致,具体原理在作者的多种群遗传算法博客中已做说明,这里不再阐述。

多种群遗传算法详解

06 结果分析

运行程序,得到结果如下:

遗传算法进化曲线对比:
在这里插入图片描述

由曲线可以看出,多种群GABP较之GABP收敛快,进化结果更好

测试集预测效果对比:
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

从图中可以看出多种群GABP对于测试集的预测性能比GABP和BP更佳。各项误差指标都更小,足以说明多种群GABP在此问题上较之GABP、BP更加优越。

06 源码获取

https://mbd.pub/o/bread/ZJmcmZ5u

(代码保证运行)

07 展望

虽然多种群GABP预测上有更好的表现,但由于多种群GABP,会采用更多的种群,其运算时间会比GABP更长,其次整体上看对于该问题还可以采取其它的预测方法或优化方法以使预测更加准确。

猜你喜欢

转载自blog.csdn.net/sfejojno/article/details/131072193