3.2 基于遗传算法的神经网络优化方法
概述 BP算法是人工神经网络中应用最广泛的算法,但是存在着一些缺陷: 一是学习收敛速度太慢; 二是不能保证收敛到全局最小点; 三是网络结构不易确定。 BP算法优化后仍存在一定的问题 网络结构确定 初始连接权值选取 阈值的选择 遗传算法应用于神经网络 优化人工神经网络(ANN)的结构, 学习神经网络的权值,也就是用遗传算法取代一些传统的学习算法。
概述 遗传算法(Genetic Algorithm, GA)是模拟达尔文的遗传选择和自然淘汰的生物进化过程的计算模型。 由美国密执根(Michigan)大学的J.Holland教授于1975年首先提出。 Hello,I’m John Holland
3.2.2 遗传算法简介 算法原理 首先将问题求解表示成基因型(如常用的二进制编码串),从中选取适应环境的个体,淘汰不好的个体,把保留下来的个体复制再生,通过交叉、变异等遗传算子产生新一染色体群。依据各种收敛条件,从新老群体中选出适应环境的个体,一代一代不断进步,最后收敛到适应环境个体上,求得问题最优解
3.2.2 遗传算法简介 生物遗传学概念与遗传算法中概念的对应关系 生物遗传学概念 遗传算法中的作用 适者生存 3.2.2 遗传算法简介 生物遗传学概念与遗传算法中概念的对应关系 生物遗传学概念 遗传算法中的作用 适者生存 在算法停止时,最优目标值的解有最大的可能被留住 个体(individual) 目标函数的解 染色体(chromosome) 解的编码(向量) 基因(gene) 解中的每一分量的特征(或值) 适应性(fitness) 适应度函数 群体(population) 选定的一组解(其中解的个数为群体的规模) 种群(reproduction) 根据适应函数选取的一组解 交配(crossover) 按交配原则产生一组新解的过程 变异(mutation) 编码的某一分量发生变化的过程
3.2.2 遗传算法简介 算法步骤 1.随机产生一定数目的初始个体(染色体) 2.用评价函数来评价每个染色体的优劣 3.基于适应值的选择策略 3.2.2 遗传算法简介 算法步骤 1.随机产生一定数目的初始个体(染色体) 这些随机产生的染色体组成一个种群,种群中的染色体数目称为种群的规模或大小(pop-size)。 2.用评价函数来评价每个染色体的优劣 染色体对环境的适应程度(称为适应度),并用作以后遗传操作的依据。 3.基于适应值的选择策略 从当前种群中选取一定的染色体作为新一代的染色体,染色体的适应度越高,其被选择的机会越大。 4.对这个新生成的种群进行交叉(交配)操作、变异操作。 变异操作的目的使种群中的个体具有多样性,防止陷入局部最优解,这样产生的染色体群(种群)称为后代。 5.判断是否达到预定的迭代次数,是则结束,否则返回2进入下一轮迭代操作
遗传算法的流程图 执行杂交 GEN=0 产生初始群体 是否满足停止准则 指定结果 结 束 计算每个个体的适应度 i=0 i=N ? 结 束 计算每个个体的适应度 i=0 i=N ? 以概率选择遗传算子 GEN=GEN+1 选择一个个体 选择两个个体 执行复制 i=i+1 执行变异 复制到新群体 执行杂交 插入到新群体 将两个子代串插入到新群体 是 否 pr pc pm GEN—当前代数 N—群体规模 遗传算法的流程图
3.2.3 遗传算法工具箱 编码和种群生成 指令格式: 参数说明: 3.2.3 遗传算法工具箱 编码和种群生成 指令格式: Function[pop]=initializega(populationSize,variableBounds,evalFN,evalOps,options) 参数说明: pop:随机生成的初始种群 populatoinSize:种群大小即种群中个体的数目 variableBounds:表示变量边界的矩阵 evalFN:适应度函数 evalOps:传给适应度函数的参数 options:选择编码形式:1为浮点编码,0为二进制编码
3.2.3 遗传算法工具箱 进行遗传操作 指令格式: function [x,endPop,bPop,traceInfo]=ga(bounds,evalFN,evalOps,startPop,opts, termFN,termOps,selectFN,selectOps,xOverFNs,xOverOps,mutFNs,mutOps) 参数说明: (1)输出参数 X:求得的最优解 endPop:得到的最终种群 bPop:最优种群的搜索轨迹 traceInfo:每代的最优值和均值矩阵 (2)输入参数 Bounds:代表变量上下界的矩阵 startPop:可以从初始化函数中得到的初始解矩阵 evalFN:适应度函数 termFN:终止函数的名称 termOps:终止函数的参数 selectFN:选择函数名 selectOpts:选择参数 xOverFNS:交叉函数名 xOverOps:交叉参数 mutFNs:变异函数名 mutOps:变异参数
3.2.4 用遗传算法优化神经网络权值的学习过程 以2.3.2中的BP网络为例,其遗传算法学习权值步骤如下 1)初始化种群P 3.2.4 用遗传算法优化神经网络权值的学习过程 以2.3.2中的BP网络为例,其遗传算法学习权值步骤如下 1)初始化种群P 包括交叉规模、交叉概率Pc、突变概率Pm以及权值初始化 2)计算每一个个体评价函数,并将其排序,可按下式概率值选择网络个体 为个体 的适应度,可用误差平方和来衡量,即 以交叉概率Pc对个体 和 进行交叉操作,产生新个体 和 ,没有进行交叉操作的个体直接进行复制。
3.2.4 用遗传算法优化神经网络权值的学习过程 4)利用变异概率Pm突变产生 的新个体 。 5)将新个体插入到种群P中,并计算新个体的评价函数。 6)判断算法是否结束。如果找到了满意的个体或已经达到最大的迭代次数则结束,否则转3)进入下一轮迭代。 算法结束,如达到预先设定的性能指标后,将最终群体中的最优个体解码即可得到优化后的网络连接权值系数。 用遗传算法优化神经网络的MATLAB实现请参阅4.5.3节
小结 概述 遗传算法简介 遗传算法工具箱函数 用遗传算法优化BP神经网络权值的学习过程
谢谢!