遗传算法(进化类算法)中的选择,交叉,变异等一系列问题解析(二)

问题1——遗传算法中适应度函数如何确定

一般来说,遗传算法中的适应度函数是根据你想要得到的优化结果进行确定的。有的优化目的是要更小的适应度函数值,相反有的优化目的是要更大的适应度函数值。
这样说吧,例如很多博客中举的例子,袋鼠山地进化。其中,袋鼠个体(individual)相当于染色体(chromosome),袋鼠个体出现的位置则有本身的基因决定,所有袋鼠构成了袋鼠种群。对于袋鼠而言,想要生存就需要到达更高的地方。这个例子中,想要得到的最终目的是个体出现在更高的位置,也就是袋鼠个体出现在更高的位置,则表明该个体具有更好的生存优势,这个目的则可以作为遗传算法的适应度函数。

怎样确定该适应度函数(fitness function)

需要找到一个衡量个体所在位置高度的显式公式,将该高度衡量公式作为袋鼠进化的适应度函数。

如何实现袋鼠位置的移动或者变化

在袋鼠山地进化的优化问题中,袋鼠个体位置是由本身的基因决定的。因此,只有通过改变基因才能实现袋鼠所在位置的变化。
在遗传算法(进化类算法)中,基因操作主要分为:变异(mutation)和交叉(crossover)。通过变异和交叉,进而改变基因序列,使得袋鼠位置发生变化。

如何将有优良的袋鼠个体选出来

举个栗子
一个班级中,怎样判断一个学生学习好,当然是考试分数高,则表示学生学习好。怎样将学习好的学生挑选出来,已经有了学习好的衡量指标,则通过将成绩好的学生挑选出来就行了!
袋鼠进化问题也是这样的
已经有了可以衡量袋鼠个体优良的衡量指标——适应度函数(fitness function)
仅仅通过将具有更好的袋鼠个体选择出来就可以了!
这也就是遗传算法或者进化类算法中的——选择操作

怎样判断个体适应度好坏

可能看到这里,你会有疑问,适应度函数的计算结果,会有大有小,怎样判断个体好坏额?
例如,对于神经网络而言,我们会经常看到有关论文来优化网络参数,目的是得到可以使神经网络预测误差最小的网络参数。这个目的(误差最小)便可以作为优化算法的适应度函数,我们需要找到可以使适应度函数最小的网络参数,因此这种属于最小化适应度函数类型

M i n i   F i t n e s s f u n c t i o n = ∣ ∣ 预 测 误 差 衡 量 公 式 ∣ ∣ Mini \ Fitness function = ||预测误差衡量公式|| Mini Fitnessfunction=

相反,对于袋鼠进化而言,属于典型的最大化适应度函数类型

M a x   F i t n e s s f u n c t i o n = ∣ ∣ 袋 鼠 位 置 衡 量 公 式 ∣ ∣ Max \ Fitness function = ||袋鼠位置衡量公式|| Max Fitnessfunction=

问题2—— 变异和交叉实现遇见的问题

待续…

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值