NEAT 的突变何时发生?

When do mutations in NEAT occur?

我通读了 NEAT paper,现在我理解了算法。

但是有一件事我还不清楚。突变何时发生以及如何发生?是加节点还是加连接变异怎么选择呢?此外,如何选择网络中发生突变的位置(在哪些连接之间)?

首先:NEAT 论文非常广泛。它没有给出很多具体的实现。但在大多数 GA 实施中,突变发生在之后 从父基因组创建新基因组。

在开始学习 NEAT 之前,请确保首先研究遗传算法的工作原理。

在大多数情况下,某种变异发生的几率在变异方法中是均匀分布的。例如,如果您有 3 个变异方法(add_node、add_conn 和 mod_weight)和 mutationRate = 0.3,那么这些方法中的每一个都有 0.1 的机会被执行在基因组上。

有时无法添加连接,因此添加节点可能有更高的机会被执行。

突变在网络中的位置也是随机的。突变总体上是随机的。

但是你问的问题很宽泛。您引用的论文仅说明了如何实现网络拓扑的有效神经进化。它为您自己的项目奠定了基础。如何实现它完全取决于您(以及最适合网络的方式!)