4

我一直在阅读增强拓扑的 NeuronEvolution,有一件小事一直困扰着我。在阅读 Kenneth Stanley 的 NEAT 论文时,我在这里看到了这个图:

NEAT突变

第一次突变时,创新数字从 1,2,3,4,5,6 变为 1,2,3,4,5,6,7。

在第二个中,它从 1,2,3,4,5,6 变为 1,2,3,4,5,6,8,9。

我的问题是为什么它会跳过数字 7 而直接上升到 8?我没有找到与删除创新编号相关的任何内容。

在第二个图上也是如此,父母 1 是如何失去 6,7 的?父母 2 中的第 8 个基因去了哪里?

整洁的交叉

4

1 回答 1

9

创新编号(我将简称为 IN)是一种特定结构的标签。因此,从 1 号神经元到 2 号神经元的连接将有一个 IN,例如 1,所有具有该连接的网络都会将此连接标记为 IN 1。当创建新连接时(通过添加连接突变或添加节点突变),首先检查IN的“数据库”中是否存在这种连接。如果已经存在这样的连接,则使用它的 IN。如果不是,则增加一个 IN 计数器,新连接获取这个新 IN 并存储在数据库中。

在上半部分的第一个图中,从神经元 3 到神经元 5 添加了一个新连接。如果这是整个群体中出现的第一个这样的连接,则增加 IN 计数器并将这个新的 IN 用于该连接。如果它已经在其他地方发生,则使用它的 IN 而不是创建一个新的。可能是其中任何一种情况,我们不知道其余人口的情况。碰巧连接 3->5 有 IN 7。

现在,在第一个图的底部,您在神经元 3 和 4 之间添加了一个神经元 6,这意味着您添加了连接 3->6 和 6->4。再次,您首先问“数据库中是否存在连接 3->6 的 IN?” 如果是你使用那个IN,如果不是你增加计数器。其他连接也是如此。在该图中,您可以想象所有这些新连接都是新连接,因此在上部,IN 计数器为 6,而对于尚未遇到的新连接,您增加了 IN 计数器并将 7 分配给连接. 然后底部发生了,有两个全新的连接,所以你将 IN 计数器增加到 8 和 9。在底部,没有连接 3->5 有 IN 7,所以这就是 IN 7 没有的原因那里。

关于第二个图,它只是一个示例,展示了当存在不相交的 IN 时交叉是如何工作的。父母就是这样,为了榜样。但是,他们本可以很容易地达到这种状态。想象一下,父 1 在进化的某个较早时间点只有 IN 1 到 5,而 5 是迄今为止最新的 IN。然后,在群体的其他地方,在神经元 5 和 4 之间添加了一个新的神经元(第 6 号),即创建了新的连接 5->6 和 6->4。由于尚未遇到此类连接,因此将 IN 计数器增加到 6 和 7。然后,在此之后,通过添加新连接 1->8 来改变父节点 1。由于这也是新的,因此分配了新的 IN 8。

于 2017-02-02T08:25:39.137 回答