遗传算法优化BP神经网络

原创 2016年12月03日 17:56:58

遗传算法原理

遗传算法(Genetic Algorithms)是1962年由美国Michigan大学Holland教授提出的模拟自然界遗传机制和生物进化论而形成的一种并行随机搜索最优化方法。它把自然界中的“优胜劣汰,适者生存”的生物进化原理引入优化参数形成的编码串联群体中,按照所选择的适应度函数并通过遗传中的选择、交叉和变异对个体进行筛选,是适应值好的个体被保留,适应度差的个体倍淘汰,新的种群集成上一代的信息,有由于上一代。这样反复循环,直到满足条件。遗传算法基本的操作分为:

  1. 选择操作
    选择操作是指从旧的群体中以一定的概率选择个体到新的群体中,个体被选中的概率是跟适应度值有关,个体适应度值越好,被选中的概率越大。
  2. 交叉操作
    交叉操作是指从个体中选择两个个体,通过两个染色体的狡猾组合,来查省心的优秀个体。交叉过程为从种群中任选两个染色体,随机选择一点或多点染色体未知进行交换。交叉操作如图所示:
  3. 变异操作
    变异操作是指从种群中任选一个个体,选择染色体的一点进行变异以产生更优秀的个体。变异操作如图所示:

遗传算法具有高效启发式搜索、并行计算等特点,目前已经应用在函数优化、组合优化以及生产调度等方面。

遗传算法的基本要素

遗传算法的基本要素包括染色体编码方法、适应度函数、遗传操作和运行参数。

其中染色体编码方法是指个体的编码方法,目前主要包括二进制法、实数法等。二进制法是指把个体编码成一个二进制串,实数法是指把个体编码成一个实数串。

适应度函数是指根据进化目标编写的计算个体适应度值得函数,通过适应度函数计算每一个个体的适应度值,提供给选择算子进行选择。

遗传操作是指选择操作、交叉操作、和便已操作。

运行参数是遗传算法在初始化时确定的参数,主要包括群体大小M,遗传代数G,交叉概率Pc和变异概率Pm

算法流程

遗传算法优化BP神经网络分为BP神经网络结构确定、遗传算法优化和BP神经网络预测3个部分。其中,BP神经网络的结构确定部分根据拟合函数输入输出参数个数确定BP神经网络结构,进而确定遗传算法个体的长度。遗传算法优化使用遗传算法优化BP神经网络的权值和阈值,种群中的每个个体都包含了一个网络所有的权值和阈值,个体通过适应度函数计算个体的适应度值,遗传算法通过选择、交叉和变异操作找到最优适应度值对应个体。BP神经网络预测用遗传算法得到最优个体对网络初始权值和阈值赋值,网络经训练后预测函数输出。

算法流程

遗传算法的实现

  1. 种群初始化
    个体编码方法为实数编码,每隔个体均为一个实数串,由输入层和隐含层连接权值、隐含层阈值、隐含层与输出层连接权值以及输出层阈值4个部分组成。个体包含了神经网络全部的权值和阈值,在网路结构一直的情况下,就可以构成一个结构、权值、阈值确定的神经网络。
  2. 适应度函数
    根据个体得到BP神经网络的初始权值和阈值,用训练数据训练BP神经网络后预测系统输出,把预测输出个期望的输出之间的误差绝对值和E作为个体适应度值F计算公式为
    F=k(i=1nasb(yioi))

    式中,n为网络输出节点数;yi为BP神经网络第i个节点的期望输出oi为第i个节点的实际输出;k为系数。
  3. 选择操作
    遗传算法选择操作有轮盘赌法、锦标赛法等多种方法。选择轮盘赌法时,即基于适应度比例的选择策略,每个个体i的选择概率pi为:
    fi=kFi
    pi=fiNj=1fj

    式中,Fi为个体i的适应度值,由于适应度值越小越好,所以在个体选择前对适应度求倒数;k为系数;N为种群个体数目。
  4. 交叉操作
    由于个体采用实数编码,所以交叉操作方法采用实数交叉法,第k个染色体ak和第l个染色体a_l在j为的交叉操作方法如下:

    akj=akj(1b)+aljb
    alj=alj(1b)+akjb
    式中,b是[0,1]之间的随机数。

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

    aij={aij+(aijamax)f(g)r>0.5aij+(aminaij)f(g)r<=0.5
    式中,amax为基因aij的上界;amin为基因的下界;f(g)=r2(1gGmax)2r2是一个随机数;g为当前迭代次数;Gmax是最大的进化次数;r为[0,1]间的随机数。

版权声明:本文为博主原创文章,未经博主允许不得转载。

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

遗传算法优化神经网络
  • Yaroo
  • Yaroo
  • 2016年09月08日 16:00
  • 2573

神经网络和遗传算法结合(原创)

本人理解:        神经网络是用来处理 非线性关系的,输入和输出之间的关系可以确定(存在非线性关系),可以利用神经网络的自我学习(需要训练数据集 用明确的输入和输出),训练后权值确定,就可以测试...
  • u011001084
  • u011001084
  • 2015年10月22日 16:33
  • 4207

【神经网络学习笔记】遗传算法优化BP神经网络-非线性函数拟合

我们知道,在建立神经网络的时候,需要给gege
  • zjccoder
  • zjccoder
  • 2014年07月18日 18:12
  • 4321

遗传算法优化BP神经网络

遗传算法-—模拟自然界遗传机制和生物进化论而成的一种并行随机搜索最优化方法。基于自然界“优胜劣汰,适者生存”的生物进化原理引入优化参数形成的编码串联群体中,按照所选择的适应度函数并通过遗传中的选择、交...
  • u010004460
  • u010004460
  • 2016年04月15日 10:57
  • 2148

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

遗传算法优化BP神经网络分为BP神经网络结构确定、遗传算法优化和 BP神经网络预测3个部分。其中,BP神经网络结构确定部分根据拟合函数输入输出参数个数确定 BP神经网络结构,这样就可以确定遗传算法的优...
  • dulingtingzi
  • dulingtingzi
  • 2016年04月10日 20:22
  • 9199

遗传算法优化BP神经网络

遗传算法GA—模拟自然界遗传机制和生物进化论而成的一种并行随机搜索最优化方法。(具有“生存+检测”的迭代过程的搜索算法)基于自然界“优胜劣汰,适者生存”的生物进化原理引入优化参数形成的编码串联群体中,...
  • dingyahui123
  • dingyahui123
  • 2017年06月02日 21:28
  • 1352

遗传算法优化的BP神经网络建模

遗传算法优化的BP神经网络建模     十一月匆匆过去,每天依然在忙碌着与文档相关的东西,在寒假前一个多月里,努力做好手头上的事的前提下多学习专业知识,依然是坚持学习与素质提高并重,依然...
  • ban_xc
  • ban_xc
  • 2016年06月05日 10:35
  • 2802

遗传算法优化BP神经网络续

下面是函数实现的代码部分: clc clear all close all %% 加载神经网络的训练样本 测试样本每列一个样本 输入P 输出T,T是标签 %样本数据就是前面问题描述中列出的数据 %ep...
  • dulingtingzi
  • dulingtingzi
  • 2016年04月10日 22:01
  • 3537

遗传算法优化的BP神经网络建模

遗传算法优化的BP神经网络建模。 目标:    对y=x1^2+x2^2非线性系统进行建模,用1500组数据对网络进行构建网络,500组数据测试网络。由于BP神经网络初始神经元之间的权值和阈值一般...
  • lo3656485
  • lo3656485
  • 2015年05月05日 20:06
  • 2989

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

遗传算法优化BP神经网络分为BP神经网络结构确定、遗传算法优化和 BP神经网络预测3个部分。其中,BP神经网络结构确定部分根据拟合函数输入输出参数个数确定 BP神经网络结构,这样就可以确定遗传算法的优...
  • dulingtingzi
  • dulingtingzi
  • 2016年04月10日 20:22
  • 9199
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:遗传算法优化BP神经网络
举报原因:
原因补充:

(最多只允许输入30个字)