700字范文,内容丰富有趣,生活中的好帮手!
700字范文 > 遗传算法(进化类算法)中的选择 交叉 变异等一系列问题解析(二)

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

时间:2020-08-15 04:56:36

相关推荐

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

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

一般来说,遗传算法中的适应度函数是根据你想要得到的优化结果进行确定的。有的优化目的是要更小的适应度函数值,相反有的优化目的是要更大的适应度函数值。

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

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

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

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

在袋鼠山地进化的优化问题中,袋鼠个体位置是由本身的基因决定的。因此,只有通过改变基因才能实现袋鼠所在位置的变化。

在遗传算法(进化类算法)中,基因操作主要分为:变异(mutation)和交叉(crossover)。通过变异和交叉,进而改变基因序列,使得袋鼠位置发生变化。

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

举个栗子

一个班级中,怎样判断一个学生学习好,当然是考试分数高,则表示学生学习好。怎样将学习好的学生挑选出来,已经有了学习好的衡量指标,则通过将成绩好的学生挑选出来就行了!

袋鼠进化问题也是这样的

已经有了可以衡量袋鼠个体优良的衡量指标——适应度函数(fitness function)

仅仅通过将具有更好的袋鼠个体选择出来就可以了!

这也就是遗传算法或者进化类算法中的——选择操作

怎样判断个体适应度好坏

可能看到这里,你会有疑问,适应度函数的计算结果,会有大有小,怎样判断个体好坏额?

例如,对于神经网络而言,我们会经常看到有关论文来优化网络参数,目的是得到可以使神经网络预测误差最小的网络参数。这个目的(误差最小)便可以作为优化算法的适应度函数,我们需要找到可以使适应度函数最小的网络参数,因此这种属于最小化适应度函数类型

MiniFitnessfunction=∣∣预测误差衡量公式∣∣Mini \ Fitness function = ||预测误差衡量公式||MiniFitnessfunction=∣∣预测误差衡量公式∣∣

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

MaxFitnessfunction=∣∣袋鼠位置衡量公式∣∣Max \ Fitness function = ||袋鼠位置衡量公式||MaxFitnessfunction=∣∣袋鼠位置衡量公式∣∣

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

待续…

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。