演化神经网络 论文阅读笔记 CNN + 遗传算法

论文阅读笔记:

The core idea is to propose an encoding method to represent each network structure in a fifixed-length binary string. (提出一种编码方法)

We propose a novel encoding scheme to represent each network structure as a fifixed-length binary string, and defifine several standard genetic operations, i.e., selection, mutation and crossover, so that new competitive individuals are generated from the previous generation and weak ones are eliminated. (固定长度的二进制编码)

The quality (fifitness function) of each individual is determined by its recognition accuracy on a reference dataset. (适应度函数)

缺点:

the genetic algorithm is computationally expensive,大型数据集很难

编码方式只限于CNN中使用

文章结构:

第二节简要介绍相关工作。 第三节利用遗传算法设计的方法和 网络结构。 实验见第4节 并在第5节中得出结论

编码方式:

采用二进制编码,按照12 13 23 14 24 34 ……的顺序进行,如果有连接则为1,没有链接则为0,如下图:(全连接层不进行编码,输入节点为V0, 输出为V(k+1),执行卷积操作,)

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-qRMWqK8p-1601729398077)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\image-20201003202242684.png)]

  • 问题:

在这里插入图片描述
这个代表什么含义

遗传算法

编码与解码

实现遗传算法的第一步就是明确对求解问题的编码和解码方式。

对于函数优化问题,一般有两种编码方式,各具优缺点

  • 实数编码:直接用实数表示基因,容易理解且不需要解码过程,但容易过早收敛,从而陷入局部最优
  • 二进制编码:稳定性高,种群多样性大,但需要的存储空间大,需要解码且难以理解

个体与种群

『染色体』表达了某种特征,这种特征的载体,称为『个体』。

对于本次实验所要解决的一元函数最大值求解问题,个体可以用上一节构造的染色体表示,一个个体里有一条染色体。

许多这样的个体组成了一个种群,其含义是一个一维点集(x轴上[0,9]的线段)。

适应度函数

遗传算法中,一个个体(解)的好坏用适应度函数值来评价,在本问题中,f(x)就是适应度函数。

适应度函数值越大,解的质量越高。

适应度函数是遗传算法进化的驱动力,也是进行自然选择的唯一标准,它的设计应结合求解问题本身的要求而定。

遗传算子

我们希望有这样一个种群,它所包含的个体所对应的函数值都很接近于f(x)在[0,9]上的最大值,但是这个种群一开始可能不那么优秀,因为个体的染色体串是随机生成的。

如何让种群变得优秀呢?

不断的进化。

每一次进化都尽可能保留种群中的优秀个体,淘汰掉不理想的个体,并且在优秀个体之间进行染色体交叉,有些个体还可能出现变异。

种群的每一次进化,都会产生一个最优个体。种群所有世代的最优个体,可能就是函数f(x)最大值对应的定义域中的点。

如果种群无休止地进化,那总能找到最好的解。但实际上,我们的时间有限,通常在得到一个看上去不错的解时,便终止了进化。

对于给定的种群,如何赋予它进化的能力呢?

  • 首先是选择(selection)

    • 选择操作是从前代种群中选择***多对***较优个体,一对较优个体称之为一对父母,让父母们将它们的基因传递到下一代,直到下一代个体数量达到种群数量上限
    • 在选择操作前,将种群中个体按照适应度从小到大进行排列
    • 采用轮盘赌选择方法(当然还有很多别的选择方法),各个个体被选中的概率与其适应度函数值大小成正比
    • 轮盘赌选择方法具有随机性,在选择的过程中可能会丢掉较好的个体,所以可以使用精英机制,将前代最优个体直接选择
  • 其次是交叉(crossover)

    • 两个待交叉的不同的染色体(父母)根据交叉概率(cross_rate)按某种方式交换其部分基因
    • 采用单点交叉法,也可以使用其他交叉方法

链接:https://www.zhihu.com/question/23293449/answer/120220974

Genetic Algorithm Developed By : Prof. Kalyanmoy Deb with assistance from his Students. This is a GA implementation using binary and real coded variables. Mixed variables can be used. Constraints can also be handled. All constraints must be greater-than-equal-to type (g >= 0) and normalized (see the sample problem in prob1 in objective()). There are three sample input file (inp-r for real-coded variables only, inp-b for binary-coded variables only, and inp-rb for a mixed real and binary variables) which can be used to run this code. The template file for each input data file is also included (input-real, input-binary, and input-real+binary). Code your objective function and constraints at the end of the code (in objective()) Variable boundaries for real-coded variables can be fixed or flexible. Following selection opeartor is coded: Tournament selection: Set MINM=1 for minimization and -1 for maximization in objective(). For binary strings, single-point crossover and for real parameters simulated binary crossover (SBX) are used. Mutation: bit-wise for Binary coded GAs and polynomial mutation (with eta) for Real coded GAs Constraints are handled using Deb's paramater-less approach (see CMAME, 2000 paper) Niching allows restricted tournament selection. Recommended for complex and disconnected feasible regions. (Niching parameter of 0.1 is recommended.) The execution creates a file `result.out' which contains the input data and best solution obtained by the GA. The feasiblilty of the best solution and constraint values are also marked. The report.out contains population record of each generation. The file 'plot.out' contains a gnuplot-compatibale data file for plotting best, avg, and worst population fitness versus generation number.
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值