基于遗传算法的BP神经网络的应用Word格式.docx
《基于遗传算法的BP神经网络的应用Word格式.docx》由会员分享,可在线阅读,更多相关《基于遗传算法的BP神经网络的应用Word格式.docx(23页珍藏版)》请在冰豆网上搜索。
![基于遗传算法的BP神经网络的应用Word格式.docx](https://file1.bdocx.com/fileroot1/2022-9/30/29b8449d-dd25-4ef2-af8e-272b9a21b275/29b8449d-dd25-4ef2-af8e-272b9a21b2751.gif)
1.引言
前馈神经网络(BP模型)其非线性逼近能力是它博得青睐的主要原因,而BP算法作为前馈网络的主要学习算法,则无可争议的对其推广应用起了举足轻重的促进作用。
BP算法因其简单、易行、计算量小、并行性强等优点,是目前神经网络训练采用最多也是最为成熟的训练算法之一。
然而,由于BP算法是一种梯度下降搜索方法,因而不可避免地存在固有的不足,如易陷入误差函数的局部极值点,而且对于较大搜索空间、多峰值和不可微函数也不能有效搜索到全局极小点,而遗传算法则是克服这一不足的有效解决方法,主要是因为遗传算法是一种全局优化搜索算法[3],因而能够避开局部极小点,而且在进化过程中也无需提供所要解决问题的梯度信息。
2.BP神经网络
2.1BP神经网络的特点
在20世纪80年代,Rumelhart等人首次提出了BP神经网络算法,BP神经网络的本值就是反向传播神经网络(BackPropagationNeuralNetwork)。
BP神经网络与其他网络相比具有其独特的特点:
分布式存储方式,大规模并行处理,自学习和自适应能力,容错性及鲁棒性好[2]。
2.2BP神经网络模型
BP神经网络具有一个输入层、一个输出层以及若干隐含层,其本质是一种多层前馈神经网[1]。
在BP神经网络中每一层的神经元都不与相同层的神经元相连接,这是由于在神经网络中各层之间是以全连接方式连接到一起构成网络的,因此各层的神经元只能接受下层神经元送来的激活信号,并向多层映射网传递修正误差及反馈,BP网络的这种结果使得他能在参数选择合理时收敛点较小的均方误差。
对许多实际问题的解决都是利用BP网络的这种结构特点,如模式识别、预测、控制等方面,这就使得BP网络成为目前应用最为广泛的一种神经网络。
下面以一个四层的BP神经网络来介绍BP网络的基本结构,结构如图1所示,该网络有一个输入层、两个隐含层、一个输出层,其中xi(p)(i=1,2,...n)表示输入变量,其个数为n即输入层节点个数为n,两个隐含层的节点个数分别为l和s,m表示输出层的节点数,yk(p)(k=1,2,...m)表示输出层节点输出。
在神经网络中每一个神经元都可以用一个节点来表示,而神经网络的
隐含层是可变的可以是单层、双层和多层。
通常情况下采用Sigmoidal型函数表示隐含层节点,采用Sigmoidal型函数或者线性函数表示输入和输出节点。
图1BP神经网络结构图表
3.遗传算法
3.1遗传算法的原理
遗传算法(GeneticAlgorithms)是1962年由美国Michigan大学Holland教授提出的模拟自然界遗传机制和生物进化论而成的一种并行随机搜索最优化方法[4]。
由于遗传算法的寻优能力的并行性高并且具有自适应性,使其在诸多领域都得到了迅速的发展如函数优化、机器学习等,同时取得了较好的效果。
遗传算法中的操作步骤与生物遗传和进化的步骤极为相似。
它把自然界“优胜劣态,适者生存”的生物进化原理引入优化参数形成的编码串联群体中,按照所选择的适应度函数并通过遗传中的选择、交叉和变异对个体进行筛选,使适应度值好的个体被保留,适应度值差的个体被淘汰,新的群体既继承了上一代的信息,又优于上一代。
这样反复循环,直至满足条件。
3.2遗传算法的基本操作
3.2.1选择操作
选择操作是指从旧群体中以一定概率选择个体到新群体中,个体被选中的概率跟适应度值有关,个体使用度质越好,被选中的概率越大。
3.2.2交叉操作
交叉操作是指从个体中选择两个个体,通过两个染色的交换组合,来产生新的优秀个体[5]。
交叉过程为从群体中任选两个染色体,随机选择一点或多点染色体位置进行交换。
交叉操作图如图2所示。
A:
110001011111交叉A:
110001010000
B:
111101010000B:
111101011111
图2交叉操作
3.3.3变异操作
变异操作是指从群体中任选一个个体,选择染色体中的一点进行变异以产生更优秀的个体。
变异操作如图3所示。
变异
110001011111A:
110001011101
图3变异操作
遗传算法具有高效启发式搜索、并行计算等特点,目前已经应用在函数优化、组合优化以及生产调度等方面。
3.3遗传算法的基本要素
遗传算法的基本要素包括染色体编码方适应度函数、遗传操作和运行参数。
其中染色体编码方法是指个体的编码方法,目前包括二进制法、实数法等。
二进制法是指把个体编码成为一个二进制串,实数法是指把个体编码成为一个实数串。
适应度函数是指根据目标编写的计算个体适应度值的函数,通过适应度值函数计算每个个体的适应度值,提供给选择算子进行选择。
遗传操作是指选择操作、交叉操作和变异操作。
运行参数是遗传算法在初始化时确定的参数,主要包括群体大小M、遗传代数G、交叉概率Pc和变异概率Pm。
4.遗传算法优化BP神经网络
4.1算法流程
遗传算法优化BP神经网络算法流程[6]如图4所示。
BP神经网络部分
遗传算法部分
N
NYY
图4算法流程
遗传优化算法优化BP神经网络分为BP神经网络结构确定、遗传算法优化和BP神经网络预测3个部分。
其中,BP神经网络结构确定部分根据拟合函数输入输出参数个数确定BP神经网络结构,进而确定遗传算法个体的长度。
遗传算法优化使用遗传算法优化BP神经网络的权值和阈值,种群中的每个个体都包含了一个网络所有权值和阈值[7],个体通过适应度函数计算个体适应度值,遗传算法通过选择、交叉和变异操作找到最优适应度值对应个体。
BP神经网络预测用遗传算法得到最优个体对网络初始权值和阈值赋值,网络经训练后预测函数输出。
拟合的非线性函数为
,有2个输入参数、1个输出参数,所以设置的BP神经网络结构为2-5-1,即输入层有2个节点,隐含层有5各节点,输出层有1个节点,共有2*5+5*1=15个权值,5+1=6个阈值,所以遗传算法个体编码长度为15+6=21.从非线性函数中随机得到2000组输入输出数据,从中随机选择1900组作为训练数据,用于网络训练,100组作为测试数据。
把训练数据预测误差绝对值和作为适应度值,个体适应度值越小,该个体越优。
4.2遗传算法实现
遗传算法优化神经网络是用遗传算法来优化BP神经网络的初始权值和阈值,使优化后的BP神经网络能够更好的预测输出[8]。
遗传算法优化BP神经网络的实现步骤如下:
1>
种群初始化
个体编码为实数编码,每个个体均为一个实数串,由输入层与隐含层连接权值、隐含层阈值、隐含层与输出层连接权值以及输出层阈值4部分组成。
个体包含了神经网络全部权值和阈值,在网络结构已知的情况下,就可以构成一个结构、权值、阈值确定的神经网络。
2>
适应度函数
根据个体得到BP神经网络的初始权值和阈值,用训练数据训练BP神经网络后预测系统输出,把预测输出和期望输出之间的误差绝对值和E作为个体适应度值F,计算公式为
(1-1)
式中n为网络输出节点数;
yi为BP神经网络第i个节点的期望输出;
oi为第i个节点的预测输出;
k为系数。
3>
选择操作
遗传算法遗传算法选择操作有轮盘赌法、锦标赛法等多种方法,本文选择轮盘赌法,即基于适应度比例的选择策略,每个个体i的选择概率pi为
(1-2)
(1-3)
式中,Fi为个体i的适应度值,由于适应度值越小越好,所以在个体选择前对适应度值求倒数;
k为系数;
N为种群个体数目。
4>
交叉操作
由于个体采用实数编码,所以交叉操作方法采用实数交叉法[9],第k个染色体ak和第l个染色体ai在j位的交叉操作方法如下:
(1-4)
式中,b是[0,1]间的随机数。
5>
变异操作
选取第i个个体的第j个基因aij进行变异[13],变异操作方法如下:
(1-5)
式中,amax为基因aij