NEAT 算法中是否共享创新权重?

人工智能 神经网络 整洁的
2021-11-04 05:16:03

我正在尝试从头开始在 Python 中实现 NEAT 算法。但是,我被困住了。当创建一个新的创新编号时,它有两个代表连接的节点。这个创新数字也有分量。

但是,我知道创新编号是全局变量,换句话说,当创建创新编号时,

ex. Innovation ID:1 - Node:1 to Node:4 - weight: 0.5

它将有一个 ID,其他连接将使用该 ID 来表示 Node:1 到 Node:4 之间的连接。

当这个创新被另一个神经网络使用时,它是否也会使用创新 1 的权重,在这个例子中是 0.5?

1个回答

引用通过增强拓扑进化的神经网络,p。10(强调我的):

交叉时,两个基因组中创新数相同的基因排成一列。这些基因被称为匹配基因。不匹配的基因要么是不相交的,要么是多余的,这取决于它们是否出现在另一方父母的创新数字范围之内或之外。它们代表了其他基因组中不存在的结构。在组成后代时,基因是从匹配基因的任一亲本中随机选择的,而所有多余或不相交的基因总是来自更合适的亲本。

创新数字用于排列不同基因组中的基因,以便您可以在具有不同拓扑的网络上执行交叉。每个网络可以以不同的方式优化匹配基因的权重,因此权重不共享。如果是这样,交叉将无助于人口多样化。