GA-BP神经网络仿真

相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

GA-BP神经网络仿真

[摘要]:本文主要是对基于遗传算法优化的BP神经网络(GA-BP)进行仿真,BP神经网络在BP神经网络中已经做详细介绍,本文首先介绍了遗传算法的基本原理,然后对遗传算法进行了描述,最后给出用遗传算法优化BP神经网络的程序。

[关键词]:GA-BP;遗传算法;仿真

1遗传算法

遗传算法(Genetic Algorithm, GA)起源于对生物系统所进行的计算机模拟研究。它是模仿自然界生物进化机制发展起来的随机全局搜索和优化方法,借鉴了达尔文的进化论和孟德尔的遗传学说。其本质是一种高效、并行、全局搜索的方法,能在搜索过程中自动获取和积累有关搜索空间的知识,并自适应地控制搜索过程以求得最佳解。

1.1遗传算法基本原理

遗传算法GA—模拟自然界遗传机制和生物进化论而成的一种并行随机搜索最优化方法。(具有“生存+检测”的迭代过程的搜索算法)基于自然界“优胜劣汰,适者生存”的生物进化原理引入优化参数形成的编码串联群体中,按照所选择的适应度函数并通过遗传中的选择、交叉和变异对个体进行筛选,使适应度值好的个体被保留,适应度差的个体被淘汰,新的群体既继承了上一代的信息,又优于上一代。反复循环,直至满足条件。

1.2遗传算法基本步骤

种群中的每个个体是问题的一个解,称为“染色体”,染色体是一串符号,如二进制字符串。利用“适值”(适应性函数)测量染色体的好坏。遗传算法基本操作分为:(1)选择操作:以一定概率选择旧群体个体到新群体中,个体被选中的概率跟适应度值有关个体适应度越好被选中改了吧越大。

(2)交叉操作:信息交换思想选两个个体交换组合产生新的优秀个体,染色体位置互换。

(3)变异操作:—以一定的低概率发生,染色体位置产生变异(通常取值0.001-0.01之间)。遗传算法是具有高效启发式搜索、并行计算等特点,应用于函数优化、组合优化及生产调度等方面。

1.3 算法实现

1.3.1 种群初始化

个体编码方法为实数编码,每隔个体均为一个实数串,由输入层和隐含层连接权值、隐含层阈值、隐含层与输出层连接权值以及输出层阈值4个部分组成。个体包含了神经网络全部的权值和阈值,在网路结构一直的情况下,就可以构成一个结构、权值、阈值确定的神经网络。

1.3.2 适应度函数

根据个体得到BP神经网络的初始权值和阈值,用训练数据训练BP神经网络后预测系统输出,把预测输出个期望的输出之间的误差绝对值和E作为个体适应度值F 计算公式为:

F=k(∑abs(y i−o i)

n

i=1

)

式中,n为网络输出节点数;yi为BP神经网络第i个节点的期望输出oi为第i个节点的实际输出;k为系数。

1.3.3 选择操作

选择运算(或称为复制运算)把当前群体中适应度较高的个体按某种规则或模型遗传到下一代群体中。一般要求适应度较高的个体将有更多的机会遗传到下一代群体中。

遗传算法选择操作有轮盘赌法、锦标赛法等多种方法。选择轮盘赌法时,即基于适应度比例的选择策略,每个个体i的选择概率pi为:

{f i=

k

F i

P i=

J i ∑f i N

j=1

式中,Fi为个体i的适应度值,由于适应度值越小越好,所以在个体选择前对适应度

求倒数;k 为系数;N 为种群个体数目。 1.3.4 交叉操作

遗传算法每一次迭代都会生成N 条染色体,在遗传算法中,这每一次迭代就被称为一次“进化”。那么,每次进化新生成的染色体是如何而来的呢?——答案就是“交叉”,你可以把它理解为交配。交叉的过程需要从上一代的染色体中寻找两条染色体,一条是爸爸,一条是妈妈。然后将这两条染色体的某一个位置切断,并拼接在一起,从而生成一条新的染色体。这条新染色体上即包含了一定数量的爸爸的基因,也包含了一定数量的妈妈的基因。

由于个体采用实数编码,所以交叉操作方法采用实数交叉法,第k 个染色体ak 和第l 个染色体a_l 在j 为的交叉操作方法如下: {a kj =a kj (1−b )+a lj b

a lj =a lj (1−

b )+a kj b

式中,b 是[0,1]之间的随机数。 1.3.5 变异操作

交叉能保证每次进化留下优良的基因,但它仅仅是对原有的结果集进行选择,基因还是那么几个,只不过交换了他们的组合顺序。这只能保证经过N 次进化后,计算结果更接近于局部最优解,而永远没办法达到全局最优解,为了解决这一个问题,我们需要引入变异。变异很好理解。当我们通过交叉生成了一条新的染色体后,需要在新染色体上随机选择若干个基因,然后随机修改基因的值,从而给现有的染色体引入了新的基因,突破了当前搜索的限制,更有利于算法寻找到全局最优解。

选取第i 个个体的第j 个基因aij 进行变异变异操作方法如下:

a ij ={

a ij +(a ij −a max )∗f (g ) r >0.5a ij +(a min −a ij )∗f (g ) r ≤0.5

式中,amax 为基因aij 的上界;amin 为基因的下界;是一个随机数;g 为当前迭代次数;Gmax 是最大的进化次数;r 为[0,1]间的随机数。(一下是代码实现种群规模10,进化次数50次交叉概率0.4变异概率0.2)

1.5 GA-BP算法

遗传算法优化BP,包括神经网络结构确定、遗传算法优化和BP神经网络预测3个部分。其中、用遗传算法优化BP神经网络的初始权值和阈值,使优化后的BP神经网络能够更好的预测函数输出。遗传算法优化BP神经网络的目的是通过遗传算法得到更好的网络初始权值和阈值,其基本思想就是用个体代表网络的初始权值和阈值、个体值初始化的BP神经网络的预测误差作为该个体的适应度值,通过选择、交叉、变异操作寻找最优个体,即最优的BP神经网络初始权值,其算法流程如图1所示。

图1 GA-BP算法流程图

2GA-BP算法仿真

本文采用MATLAB对GA-BP算法进行仿真,在MATLAB软件中编程实现基于遗传算法优化的BP神经网络。BP神经网络则使用神经网络工具箱,实现对方程组:

y=x12+x12

的输出数据进行预测。

2.1GA-BP算法伪代码

%数据准备

Data = y=x12+x12%方程组数据

save data input output

相关文档
最新文档