我一直在了解NEAT(神经进化增强拓扑)的工作原理,我已经掌握了主要思想,但有一件事情一直困扰着我,那就是如何将不同的网络分成物种。我已经仔细阅读了算法,但它对我来说并没有太多意义,我阅读的论文也没有很好地解释它,所以如果有人能够解释一下每个组件是什么以及它的作用,那就太好了,谢谢。
这两个方程式为:
这两个方程式为:
在NEAT中,物种形成类似于其他进化算法使用的适应度共享。其想法是惩罚相似的解决方案,从而创建向更多样化人口的压力。
Delta术语是两个解决方案之间距离的度量。此处使用的距离度量专门针对NEAT使用的可变长度基因组。小的Delta值表示更相似的解决方案。
在NEAT中实现的共享函数会在两个解决方案之间的距离大于或小于给定阈值时产生0或1的值。每个解决方案都与候选人口中的每个其他解决方案进行比较,并且适应度通过生成的共享函数值之和进行修改。如果一个解决方案与人口中的几个其他解决方案相似,则其修改后的适应度将显著降低。