基于遗传算法优化BP神经网络的非线性函数拟合(一维高斯函数)研究-含Matlab代码

一、引言

BP( Back Propagation,BP)神经网络在生活中的应用处处可见,如数字识别系统的设计、 PID 参数的整定值、函数逼近以及模式识别的应用,都可以基于 BP 神经网络展开。 BP算法具有精确性高等优点,但是也存在收敛速度慢、易陷入局部极小问题的缺点。遗传算法(Genetic Algorithm, GA)作为生物智能算法的一种,基于生物进化理论基础发展而来,是一种自适应性的算法,能够对一个数据空间进行全局部优,而且在收敛性方面也有一定的优越。本博文将遗传算法与 BP 神经网络算法巧妙地结合在一起,利用遗传算法对 BP 神经网络进行权值与阈值求解,并进行优化处理,从而得到权值和阈值的最优解,使 BP 神经网络结构的稳定性大幅度提升。

在理论研究方面,朱苗苗等人将 BP 神经网络和遗传算法结合形成一种交互式算法;在日常的生活应用中,徐星等人基于遗传算法优化的 BP 网络对矿井的水质进行了分析;在对未来数据走势预测领域,谢梦蝶、秦江涛通过遗传算法优化的 BP神经网络实现了对股指进行预测及研究;谢文强通过遗传算法优化的 BP 网络对锂离子电池剩余容量进行预测。这些涉及日常生活各个领域的实验及实践有力地证明了遗传算法优化的 BP 网络具有很强的实用性,也展现了遗传算法的高效性与可利用性。

在数据云集的时代, BP 神经网络在生活中的应用处处可见。它可以对事物的未来变化过程进行预判,从而成为趋势预测领域的有力工具之一。它利用构建相对应的模型,通过过去产生的数据随时间推移变化的规律,对数据未来的趋势进行预测。但是,传统 BP 神经网络存在收敛速度慢等缺点,有一定的局限性,而遗传算法优化的 BP 神经网络,能很好地弥补传统 BP 神经网络的这一缺点。优化后的BP 神经网络具有适应性强、网络稳定度高的优势。

二、遗传算法理论

遗传算法 GA 是一种生物智能优化算法。它实质上是一种全局搜索寻找最优值的技术。遗传算法针对对随机产生的可能结果,在这些结果中选择一定量的可能解作为一个种群,根据相应的规则,即自然遗传学的选择及交叉变异等方法,通过种群的迭代,得到最优解。在种群迭代的过程中,需要对个体适应度的大小进行比较,按照优胜劣汰以及适者生存的原理,逐渐搜索得到一个最优解,最终得到一个新的解集的群体。这个解集即需要解决的问题的最理想的解。

遗传算法解决实际问题的步骤如下[1],流程如图1所示。

在这里插入图片描述

图1 遗传算法流程图

(1)初始化。通过遗传算法参数编码在 N 个样本中随机选择,确定一个初始种群 P(0),形成一个可行解的集合。

(2)个体评估。把初始的种群 P(0) 导入目标函数,然后算出样本中各种群的适应度。

(3)结束条件判断。给定一个初始条件,判断算法结束条件,如满足条件直接跳到至步骤(8)。

(4)选择运算。对目标群体采用优胜劣汰、适者生存的法则,选择出大量优良个体。

(5)变异运算。通过变异概率对目标个体进行变异运算。

(6)交叉运算。通过交叉概率对目标个体进行交叉运算。

(7)经过变异、交叉随机运算,如果得到由N个新个体构成的下一个群体 P(t+1) 转至步骤(2),反之转至步骤(4)。

(8)进化个体。得到函数中适应度最高的一个个体,这个个体即该问题的最理想的解,结束运算。

三、 遗传算法优化的BP神经网络

BP 神经网络虽然操作简单、实用性强,在数据预测和图像分割领域有很大优势,但也难免存在一些问题,如收敛速度慢、算法稳定性较差、容易落入局部极小值等。而遗传算法在全局搜索方面表现出色,通过遗传算法得到 BP 神经网络权值和阈值优化求解,就可以得到稳定的网络结构,在图像分割处理、数据计算以及趋势预测方面都有较好的完善和改进,是值得一做的优化方案。

为了充分发挥遗传算法和 BP 神经网络两者的优势,本文通过遗传算法对 BP 神经网络进行改进优化,优势互补。具体步骤如下[2-3],流程如图2所示。

在这里插入图片描述

图2 遗传算法优化的BP网络流程图

(1)初始化:对整个种群进行初始化处理,利用参数编码生成 N 个个体,这 N 个个体形成新的初始种群,然后对种群数进行计算,确定染色体长度和范围,给出理想的误差值。

(2)适应度计算:计算出适应度f,公式如下。

在这里插入图片描述
式中:yi为网络期望的输出,oi为实际的输出值,SE为误差平方和函数。

(3)交叉运算:步骤(2)计算出适应度f,通过优胜劣汰的原则,筛选出优良个体,对其进行交叉运算。即选择第k个染色体ak和第i个染色体ai,在第 j 位的交叉运算方式如下。

在这里插入图片描述
式中: b∈[0,1]。

(4)变异运算,第i个个体在第j个基因进行变异运算公式如下。

在这里插入图片描述
式中: amax 和 amin 分别为染色体 aij 的上下界, f(g)=r(1-g/Gmax); g 为进行到当前的迭代次数, Gmax 为进化的最多次数,r∈ [0,1]。

(5)评估:对种群中个体的适应度进行计算并计算误差。

(6)判断是否满足终止的条件,如果满足,转至步骤(7),反之转至步骤(3)。

(7)得到BP网络最优的权值和阈值。

(8)对BP网络进行校正,调整各层参数。

(9)计算BP网络的误差,如果误差在要求的范围内,则结束整个过程。反之转至步骤(7),继续校正网络参数。

(10)得到优化后的数据,对网络空间和映射关系进行保存。

四、基于GA-BP神经网络的非线性函数拟合

4.1 拟合函数生成

非线性函数(一维高斯函数)如下:

在这里插入图片描述

它表示一维高斯分布高斯分布(Gaussian distribution),又称正态分布(Normal distribution)。若随机变量x服从一个数学期望为μ、方差为σ^2 的正态分布,记为N(μ,σ^2)。其概率密度函数为正态分布的期望值μ决定了其位置,其标准差σ决定了分布的幅度。当μ= 0,σ=1时的正态分布是标准正态分布。

在这里插入图片描述

图3 一维高斯函数

根据上述高斯函数得到该函数的2000组输入输出数据,从输入输出数据中随机选取1900组数据作为网络训练数据,用于网络训练。剩下的100组数据作为网络测试数据,用于测试网络的拟合性能。具体数据规划如下图所示:

在这里插入图片描述

图4 训练数据与测试数据划分

4.2 遗传算法的最优个体适应度值

遗传算法优化过程中最优个体适应度值变化如图5所示

在这里插入图片描述

图5 最优个体适应度值

4.3 GA-BP神经网络预测输出结果

把最优初始权值和阈值赋给神经网络,用训练数据训练100次后预测非线性函数输出,结果如图6所示。

在这里插入图片描述

图6 GA-BP神经网络预测输出结果对比

五、结论

本博文实验结果充分证明了基于遗传算法优化BP 神经网络的可行性,即利用遗传算法极其强大的全域搜索能力,确定BP神经网络的最优权值和阈值,使计算预测性能大幅度提升。实验得出的结论也很好地印证了提出这一改进算法的初衷,即要求在误差可控制的范围内提高 BP 网络算法的稳定性。

六、参考文献

[1] 闵江涛 . 基于遗传算法优化的 BP 神经网络反分析模型研究 [J]. 建材与装饰,2018,17(45):296.
[2] LI X,ZHANG T,DENG Z,et al.A recognition method of plateshapedefectbasedonRBF-Bpneuralnetworkoptimized by genetic algorithm[C]//The 26th Chinese Control and Decision Conference,2014.
[3] LIU L,QI H,LIU J,et al.The Research of Alphabet Identification Based on Genetic BP Neural Network[C]//4th International Conference on Intelligent Human-Machine Systems and Cybernetics,2012.

七、Matlab代码获取

关于本博文所演示的所有实验结果、Matlab代码下载链接如下:

https://download.csdn.net/download/m0_70745318/87769915


博主简介:研究方向涉及智能图像处理、深度学习等领域,先后发表过多篇SCI论文,在科研方面经验丰富。任何与算法程序科研方面的问题,均可私信交流讨论


  • 2
    点赞
  • 32
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

matlab科研中心

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值