【发布时间】:2017-05-20 14:43:13
【问题描述】:
在有关 NEAT 算法的论文中,作者指出
一个可能的问题是,如果偶然发生不止一次,相同的结构性创新将在同一代中获得不同的创新编号。但是,通过保留当前一代发生的创新列表,可以确保当同一结构通过同一代的独立突变多次出现时,每个相同的突变被分配相同的创新编号。
这是有道理的,因为您不希望相同的基因最终得到不同的创新数字。如果他们这样做了,那么当交叉具有相同基因但创新数不同的两个基因组时就会出现问题,因为你最终会得到一个后代,每个基因的每个基因都来自每个父母的副本,从而两次创建相同的连接。
但对我来说没有意义的是,如果两个基因之间发生突变,然后在下一代中发生相同的突变,会发生什么?在论文中,很明显只保留了当前一代的突变列表以避免“创新数量的爆炸式增长”,但没有具体说明如果相同的突变发生跨越会发生什么不同的世代。
您是否保留了基因对及其相应创新编号的全球列表以防止出现此问题?为什么论文只说明了同一代发生相同突变时会发生什么,而没有考虑跨代突变的情况?
【问题讨论】:
-
查看 NEAT 用户页面的 General NEAT Methodology FAQs,特别是解决此问题的第 9 个(倒数第三个)。
-
完美!谢谢!
标签: neural-network genetic-algorithm evolutionary-algorithm