遗传算法的理解

     遗传算法是一种启发式的随机多参数优化算法,能够解决多种寻优问题,如背包问题,求解函数极值点,图像配准参数优化,神经网络中的网络权系数的优化等等。
     遗传算法可以说是模拟自然界种群的进化过程。根据达尔文进化理论,生物种群在世世代代的繁衍过程中,适应环境的优良特性会一代代遗传下去,不适应环境的特性则逐渐被淘汰。这里所说的特性是一种生物表现出来的特点,即表现型。表现型背后就是代表个体独一无二的基因型,每个个体的区分真正意义上应该是基因,如每个人都有一套自己的DNA。
     种群的进化过程可以分为自然选择,繁殖以及基因突变。自然选择会按照一定的概率选择个体进入后面的繁衍过程,而概率与个体适应环境的程度有关,即每个个体的适应度反应了该基因型存活的概率。然后父代个体进行交叉产生一片基因片段的交换。
    编码方法:
    给予每个个体一种表现形式,以便于对每对参数做微量的调整。常见的有二进制编码、格雷码编码、浮点数编码。
    二进制编码与格雷码都是将参数映射到以0和1表示的二进制串。但是由于二者本质上的不同,导致两者导致的程序优化有较大性能上的差异。两个相邻的二进制数之间可能相差较多的0或者1,而格雷码仅仅相差一位,在后续的基因突变过程中,二进制数某一位的突变可能导致参数发生较大的变化,而格雷码则不会。因此,二进制编码的全局优化能力明显好于格雷码,对于目标曲线较为平缓和明显的极值点的优化问题,事实上格雷码编码要好于二进制编码。
    交叉与突变的概率选择需要谨慎。交叉的概率远远大于突变概率,个体与个体之间的基因片段交换是非常常见的,而每个基因片段自身的突变概率是很低的。交叉概率设置为0.7-0.9之间是比较合适的,突变概率选择0.02-0.08之间都可以,但最后会发现,突变概率对局部优化能力有一定的影响。突变概率选择低,则每次种群进化过程中的最优个体的适应度增长会很慢,但是局部优化能力好。随着突变概率的增加,全局优化能力进一步增强,但是在进化到一定代数后,逐渐收敛于局部极值,因为突变的基因位过多,很难在当前最优个体附近搜索更好的个体。
    所以,遗传算法对于结果有较高精度要求的问题,应该慎重选择。当然可以针对局部优化能弱的问题进行进一步的优化,比如以遗传算法作为初始的优化算法,先搜索到一个精度较差的参数,在此基础上采取别的局部优化能力强的算法(比如鲍威尔算法),达到搜索更好的参数的目的。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值