遗传算法总章

1. 学习遗传算法背景

在解决问题和学习知识方面,用5W方法论能很好的帮你梳理相关逻辑。之前学习某个算法,其实就是看到某个论文或者某个帖子说解决某个问题可以用这个算法,所以如获珍宝,赶紧下载相关资料和论文去研究,甚至更简单点可能就直接copy一下代码,然后修改一下就用了。很少去探究为什么要用,算法本质是什么,算法内的核心算子和原理也说不清,别人问起来说都用过,详细去说的时候就搞不清楚,这大概就是俗称的”调包侠”吧。前段时间面试了一些同学,发现十之八九也是这种状态,和同事感叹良多,决心先改变自己。这段时间正好是工作交替阶段,时间还是比较充裕的,所以把之前学的一些算法从新拾起来,同时希望能增益一下自己,有机会成为大佬。
废话说的太多了,还是回到正题,5W1H原则可能工业相关的同学都很熟悉了,其本质是让人科学分析一件事情或一个问题发生的原因,博主作为一个理工男对于这种理性方法论可谓推崇至极。

2. 遗传算法的5W

所谓的5W就是5个W开头的疑问词
Why(为什么)
What(是什么)
Where(在哪儿)
Who(谁)
When(什么时候)
1)Why 为什么要学习遗传算法?
答案显而易见,为了解决问题。可是为了解决什么问题呢?这个问题可能不翻书不好回答,我们可以继续。
2)What 什么是遗传算法?
这个问题我们可以根据算法名字来回答,遗传算法(Genetic algorithm, GA)就是根据生物遗传理论总结出来的算法。遗传理论是什么?高中生物老师讲了很多,什么基因、种豆子、上面长番茄下面长土豆的植物、克隆等等,理论的东西已经忘得差不多了,但我脑子里现在能记得比较清晰就是八个字了,适者生存,优胜劣汰。这八个字也阐明了遗传算法的本质–最优化算法。讲到这里,第一问题似乎也有了下一步答案,没错,我们解决的是最优化问题。但是最优化方法有很多啊,比较常见的Gradient Decent方法,为什么我们还需要做什么遗传算法呢?这个问题又不好回答了,那我们带着问题继续。
3) Where 遗传算法用在哪?When遗传算法什么时候可以用?
这两个W其实对于算法来说是一个问题,同时也承接了第二个问题。我认为也是整个遗传算法的最重要的贡献。传统最优化算法如GDBT等依赖梯度的算法,很容易就陷入到局部最优解,即使使用惩罚或者变步长的方法在复杂的测试函数里也是很容易得到局部最优而不是全局最优解。这也是遗传算法最大的优势,完全不依赖梯度信息和其他信息,仅仅靠遗传原则就可以大概率得到全局最优解。
GA的应用领域很广,不论是控制还是感知领域都有很丰富的应用。

3. 遗传算法术语

  • 染色体(Chromosome)或者基因型个体(Individuals),遗传算法带有一定的Monte-Calo方法的思维,可以把Individuals认为是一个有思维的骰子。一定数量的个体组成了群体,群体中个体的数量被称为群体大小
  • 基因(gene) 是表示个体特征,遗传算法中很喜欢用二进制来表示一个个体特征,例如某个个体初值为11011,为什么这么用?你可以发现二进制的表示是最接近DNA的。1,1,0,1,1这五个元素都是基因。
  • **特征值(Feature)**基因的特征值与二进制的权一致,S=1011中,基因位置等于3中的1,他的特征是2,基因位置等于1中的1,他的特征是8(基因位置是从左往右的)。
    -适应度(Fitness) 这个概念是遗传算法区别于其他算法的核心,不同于损失函数的定义。适应度是为了体现个体的适应能力,计算个体在群体中被使用的概率,这个在后面会详细的阐述。

4. 遗传算法的原理

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值