1.基于反向学习的种群初始化策略

零、前言的前言
本人是刚开始学习进化算法的小白,仅仅完成过某项改进CCIDE(这个不必懂)的实验重现而已。我的博文都是通过阅读外文资料,然后整理知识点。博文中可能出现其他文献的阅读和还没懂的证明部分,可能在以后以番外的形式更新。最后,如果出现一些字母简称您不懂的话,如果没有特别标识,如上面的CCIDE,说明你还不适合看这篇文章,可以先查阅一下其他资料,或者私信我,可能会有解决方案。这个策略将一直沿用。

一、介绍
目前成熟和常用的进化算法有:DE和GA,都有自己独特的缺点和优点,但是都有一个共同的短处,计算时间的消耗。一直以来,计算机科学家们都在改良这俩算法中的每一个步骤:交叉和变异策略,选择策略(贪婪或平均等)或者参数的设置策略(固定值或自适应等)。关于种群初始化策略的改良少之又少。在常见的进化算法中,种群的初始化都会采用纯随机策略,就是已知某一项基因的上下限,在初始化的时候在上下限之间进行随机取值。但是根据某个计算机科学家发现,纯随机策略生成的种群,在最终结果的质量和种群的收敛速度上都可以说很差,然后他提出了准随机-种群初始化策略。这里就不提了,因为该算法仅仅能改良最终结果的质量,收敛速度几乎没有加快,毕竟该策略在12维变量的算法进行中,那一点优势也会消失殆尽。所以,来自滑铁卢大学的三位计算机科学家提出了基于反向学习的种群初始化策略,在收敛速度方面宣判传统的纯随机策略死刑。

二、反向数字(opposite number)
在介绍这个改良策略之前,首先得介绍反向数字这个概念。
定义:P = a + b - p
a,b分别是(a,b)区间中的上下限,p是源数,P就是是源数的反向数字。这里修改一下定义就很好懂。
修改:P + p = a + b
代入一些常见的数字,你就懂了。
在文献中,这个反向数字在二维,三维甚至高维中也可以使用。
定义:Pi = ai + bi - pi
i代表所在维数。每一维单独计算即可。
证明太难了,涉及其他数学知识,可能在以后用番外来解释。

三、基于反向学习的种群初始化策略
进化算法的计算时间其实和初始种群中个体与最优个体的距离有关,如果个体在最优值附近出生,那么这次计算中,种群的所有个体都会进行快速的收敛。纯随机生成的个体由于没有进行过估计,收敛速度是无法预知的。不过,如果同时考虑每一个个体的反向个体,那么,个体和反向个体俩更靠近最优个体的几率是50%,选中更靠近的个体作为种群的最初个体,那就是每个个体都离最优解更近了一步,美滋滋。反向个体是什么?是一个基于个体的新个体,新个体中每一个基因都是由个体基因的反向数字。好了,现在来归纳一下步骤。
1.均匀随机地生成一个最初种群。
2.根据最初种群生成一个反向种群。(反向种群都不知道是什么那就再见吧)
3.依照次序,从最初种群中和反向种群取出个体,使用适应度函数计算其适应度。选择适应度更高的个体,放进最终的初始种群(只能这么说了)的对应位置中。
4.将最终的初始种群用于进化算法中。

四、总结
基本上,就是在初始种群中在生成一个反向种群,挑好的组成最后的总群,在进行进化算法。

五、番外计划
1.1 反向数字在高维的证明
1.2 反向学习概念阐明的三篇论文解读
Opposition-based learining:A new scheme for machine intelliengence 备注:这里介绍了反向数字在高维的实现
Reinforcement learning based on actions and oppsite actions
Opposition-based reinforcement learning

你可能感兴趣的:(机器学习,进化算法)