NEAT 物种形成算法如何工作?

Agu*_*guy 4 artificial-intelligence machine-learning genetic-algorithm

I've been reading up on how NEAT (Neuro Evolution of Augmenting Topologies) works and i've got the main idea of it, but one thing that's been bothering me is how you split the different networks into species. I've gone through the algorithm but it doesn't make a lot of sense to me and the paper i read doesn't explain it very well either so if someone could give a explanation of what each component is and what it's doing then that would be great thanks.

The 2 equations are:

$\delta = \frac{c_{1}E}{N} + \frac{c_{2}E}{N} + c_{3} .W$

$f_{i}^{'} = \frac{f_i}{\sum_{j=1}^{n}sh(\delta(i,j))}$

The original paper

Mat*_*att 5

NEAT 中的物种形成类似于其他进化算法使用的适应度共享。这个想法是惩罚类似的解决方案,对更多样化的人群造成压力。

delta 项是两个解之间距离的度量。这里使用的距离度量专门用于 NEAT 使用的可变长度基因组。小的 delta 值表示更相似的解决方案。

如果两个解决方案之间的距离分别大于或小于给定的阈值,则 NEAT 中实现的共享函数的结果为 0 或 1。将每个解决方案与候选群体中的其他解决方案进行比较,并且通过所得共享函数值的总和来修改适应度。如果一个解决方案与群体中的其他几个解决方案相似,则其修改后的适应度将显着降低。

  • 对于交叉,有不同的实现。典型的情况是随机继承共同的特征,然后从适者那里继承那些独有的特征,并且只有在一定的机会下,才继承那些较弱的特征。 (3认同)
  • 公平警告,我熟悉 NEAT 背后的想法,但不熟悉确切的实现。1. 我相信巴勃罗是对的。2.我也相信你的评估是正确的,它只是属于匹配连接的权重的平均差异。3. 将其与种群中的所有其他解决方案进行比较,直到将它们进行比较后,才能知道这些解决方案是否属于同一物种。如果两个解决方案属于不同的物种,那么比较它们将产生 0 的共享函数值,导致修改后的适应度没有变化。 (2认同)