gpt4 book ai didi

neural-network - NEAT 算法 : How to crossover disjoint and excess genes?

转载 作者:行者123 更新时间:2023-12-04 08:25:23 25 4
gpt4 key购买 nike

我目前正在实现由 Kenneth Stanley 开发的 NEAT 算法,采用原始 paper作为引用。

在描述交叉方法的部分中,有一件事让我有点困惑。

enter image description here

因此,上图说明了 NEAT 的交叉方法。为了确定基因从哪个 parent 继承,论文如下:

Matching genes are inherited randomly, whereas disjoint genes (those that do not match in the middle) and excess genes (those that do not match in the end) are inherited from the more fit parent.



对于匹配基因 (1 - 5) 很容易理解。您只是从 Parent1 或 Parent2 随机继承(两者都有 50% 的机会)。但是对于不相交的 (6-8) 和多余的 (9-10) 基因,您不能从更合适的 parent 那里继承,因为您只有在 Parent1 或 Parent2 中才有这些基因。

例如:

Parent1 的适应度高于Parent2。不相交基因6只存在于Parent2中(当然,因为不相交和过量基因只出现在一个亲本中)
所以,你不能决定从更健康的 parent 那里继承这个基因。所有其他不相交和多余的基因也是如此。您只能从它们所在的父级继承那些。

所以我的问题是:你是否可能从更合适的 parent 那里继承所有匹配的基因,并接管不相交和多余的基因?或者我在这里误解了什么?

提前致谢。

最佳答案

查看实际实现并了解它是如何处理的可能会有所帮助。在原始 C++ 代码中 here (从第 2085 行开始),来自不合适的 parent 的不相交和多余的基因似乎被跳过了。

在您的实现中,您可以从不合适的父代继承不相交和多余的基因,但以概率 1 禁用它们,以便您稍后可以对它们进行逐点突变(从禁用切换到启用)。但是,这可能会导致显着的基因组膨胀,因此请进行测试并查看有效方法。

关于neural-network - NEAT 算法 : How to crossover disjoint and excess genes?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50553867/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com