APP下载

matlab神经网络优化的遗传算法

2012-10-16朱珏钰

赤峰学院学报·自然科学版 2012年14期
关键词:搜索算法适应度算子

朱珏钰,李 峰

(1.长沙理工大学,湖南 长沙 410004;2.湖南第一师范学院,湖南 长沙 410205)

matlab神经网络优化的遗传算法

朱珏钰1,2,李 峰1

(1.长沙理工大学,湖南 长沙 410004;2.湖南第一师范学院,湖南 长沙 410205)

遗传算法它将“优胜劣汰,适者生存”的生物进化原理引入待优化参数形成的编码串群体中,按照一定的适配值函数及一系列遗传操作对各个体进行筛选,从而使适配值高的个体被保留下来,组成新的群体,新群体中各个体适应度不断提高,直至满足一定的极限条件.此时,群体中适配值最高的个体即为待优化参数的最优解.正是由于遗传算法独有的工作原理,使它能够在复杂空间进行全局优化搜索,并且具有较强的鲁棒性.

遗传算法;权值;概率;遗传算子;染色体;适应度

遗传算法(Genetic Algorithm,GA)是一种基于自然选择和基因遗传学原理的优化搜索方法.[1]它把自然界“优胜劣汰,适者生存”的生物进化原理引入优化参数形成的编码串联群体中,按照所选择的适应度函数并通过遗传中的选择、交叉和变异对个体进行筛选,使适应度值好的个体被保留,适应度差的个体被淘汰,新的群体既继承了上一代的信息,又优于上一代.这样反复循环,直至满足条件.遗传算法具有高效启发式搜索、并行计算等特点,目前已经应用在函数优化、组合优化以及生产调度等方面.

1 遗传算法的基本要素

遗传算法的基本要素包括染色体编码方法、适应度函数、遗传操作和运行参数.[2]其中染色体编码方法是指个体的编码方法,目前包括二进制法、实数法等.二进制法是指把个体编码成为一个二进制串,实数法是指把个体编码成为一个实数串.适应度函数是指根据进化目标编写的计算个体适应度值的函数,通过适应度函数计算每个个体的适应度值,提供给选择算子进行选择.遗传操作是指选择操作、交叉操作和变异操作.运行参数是遗传算法在初始化时确定的参数,主要包括群体大小M,遗传代数G,交叉概率Po和变异概率Pm.

2 遗传算法实现

遗传算法通过模拟自然环境中的遗传和进化过程,从而形成一种全局自适应优化概率搜索算法.对于一个最优化问题,目标函数和约束条件种类繁多,各种不同的形式对应的解法也大不相同.常用的寻找最优解的方法有3种,分别是枚举法、启发式算法和搜索算法.(1)枚举法:枚举出可行解集合内的所有可行解,求出精确最优解.这种方法只能对有限的可行解集合使用,并且效率较低.(2)启发式算法:通过寻求一种能产生可行解的启发性规则,从而找到一个最优解或者近似最优解.这种方法对不同的问题需要找出其特定的启发式规则,应用时也有一定的难度.(3)搜索算法:寻求一种搜索算法,此算法在可行解集合的一个子集内进行搜索操作,已找到问题的最优或近似最优解.例如梯度搜索算法,这种方法如果结合一些启发式知识,常常可以取得一种好的平衡.[3]

在遗传算法中,将n维决策向量X=[x1,x2,….xn]T用n个记号Xi(i=1,2,…,n)所组成的符号串X表示:X=X1X2……Xn→X=[x1,x2,……xn]T.把每一个 Xi看做一个遗传基因,它的所有的可能取值称为等位基因.这样X就可看做由n个遗传基因组成的一个染色体.一般情况下,染色体的长度n是固定的,但对一些问题,n也可以是变化的.根据不同的情况,这里的等位基因可以是一组整数,也可以某一范围内的实数值,或者纯粹的一个记号.最简单的等位基因是由不得0和1这两个整数组成的,相应的染色体就可以表示为一个二进制符号串.这种编码形成的排列形式X就是个体的基因型,与之对应的X值就是个体的表现型.个体的适应度与其对应的个体表现型X的目标函数值相关联,X越接近于目标函数的最优点,其适应度越大;反之,其适应度越小.

遗传算法中,决策变量X组成了问题的解空间.对问题最优解的搜索是通过对染色体X的搜索过程来进行的,从而所有的染色体X就组成了问题的搜索空间.遗传算法的运算过程也是一个反复迭代过程,第t代群体记做P(t),经过一代遗传和进化后,得到第t+1代群体,它们也是由多个个体组成的集合,记做P(t+1).遗传算法中最优解的搜索过程也是模仿生物的进化过程,通过染色体之间的交叉和变异来完成.通过所谓的遗传算子(Genetic Operators)作用于群体P(t)中,进行遗传操作,从而得到新一代群体P(t+1).(1)选择.根据个体的适应度,按照一定的规则或方法,从第t代群体P(t)中选择出一些优良的个体遗传到下一代群体P(t+1)中.(2)交叉.将群体p(t)内的个体随机搭配成对,对每一对个体,以某个概率(称为交叉概率)交换他们之间的染色体.(3)变异.对群体P(t)中的每一个个体,以某一概率(称为变异概率)将某一个或某一些基因座上的基因值改为其他的等位基因.遗传算法的运算过程如图1所示.

图1 遗传算法的运算过程

由图中可以看出,使用上述三种遗传算子(选择算子、交叉算子和变异算子)的遗传算法的主要运算过程如下所述.(1)初始化.设置进化代数计数器t=0;设置最大进化代数T;随机生成M个个体作为初始群体P(0).(2)个体评价.计算群体P(t)中个体的适应度.(3)选择运算.将选择算子作用于群体.(4)交叉算子作用于群体.(5)变异运算.将变异算子作用于群体.群体p(t)经过选择、交叉、变异运算之后得到下一代群体p(t+1)(6)终止条件判断.若t≤T,则:t=t+1,转到步骤(2);若 t>T,则以进化过程中得到的具有最大适应度的个体作为最优解输出,终止计算.相对于其他各种优化算法,如单纯形法、梯度法、动态规划法、分支定界法等,遗传算法是一类可用于复杂系统优化计算的稳健的搜索算法,其特点如下:以决策变量的编码作为运算对象;直接以目标函数值作为搜索信息;同时使用多个搜索点的搜索信息;使用概率搜索技术.[4]

3 基于遗传算法的神经网络优化算法

设有三层BP网络,Ii为输入层中第i个结点的输出;Hi为隐含层中第i个结点的输出;Oi为输出层中第i个结点的输出;WIHij为输入层中第i个结点与隐含层第j个结点的连接权值;WHOji为隐含层中第j个结点与输出层第i个结点的连接权值.[5]遗传算法学习BP网络的步骤如下.

(1)初始化种群P,包括交叉规模、交叉概率Pc、突变概率Pm以及对任一WIHij和WHOji初始化;在编码中,采用实数进行编码,初始种群取值为30.

(2)计算每一个个体评价函数,并将其排序.可按下式概率值选择网络个体:

其中fi为个体i的适配值,可用误差平方和E来衡量,即:

其中i=1,…,N,表示染色体数;k=1,…,4为输出层节点数;p=1,…,5为学习样本数;Tk为教师信号.

(3)以概率Pc对个体Gi和Gi+1交叉操作产生新个体Gi和Gi+1,没有进行交叉操作的个体直接进行复制.

(4)利用概率Pm突变产生Gj的新个体Gj.

(5)将新个体插入到种群P中,并计算新个体的评价函数.

(6)如果找到了满意的个体,则结束,否则转至步骤(3).达到所要求的性能指标后,将最终群体中的最优个体解码即可得到优化后的网络连接权值.理论分析和实验结果表明,遗传算法作为一种新型的全局优化搜索算法,将它用于神经网络权值的训练学习能得到较好的结果,它能克服BP算法中学习效率低、收敛速度慢、容易陷入局部最优等缺点,是神经网络权值训练学习的有效方法.

〔1〕朱凯,王正林.精通 MATLAB 神经网络[M].北京:电子工业出版社,2010.12.

〔2〕张德丰.MATLAB神经网络应用设计[M].北京:机械工业出版社,2009.20.

〔3〕董长虹.MATLAB神经网络与应用[M].北京:国防工业出版社,2007.96.

〔4〕MATLAB中文论坛.MATLAB神经网络30个案例分析[M].北京:北京航空航天大学出版社,2010.114.

〔5〕张德丰.MATLAB神经网络仿真与应用[M].北京:电子工业出版社,2009.221.

TP311

A

1673-260X(2011)03-0035-02

猜你喜欢

搜索算法适应度算子
与由分数阶Laplace算子生成的热半群相关的微分变换算子的有界性
改进的自适应复制、交叉和突变遗传算法
拟微分算子在Hp(ω)上的有界性
改进的和声搜索算法求解凸二次规划及线性规划
各向异性次Laplace算子和拟p-次Laplace算子的Picone恒等式及其应用
一类Markov模算子半群与相应的算子值Dirichlet型刻画
一种基于改进适应度的多机器人协作策略
基于空调导风板成型工艺的Kriging模型适应度研究
基于汽车接力的潮流转移快速搜索算法
基于逐维改进的自适应步长布谷鸟搜索算法