我一直在阅读 NEAT(增强拓扑的神经进化)的工作原理,并且我已经掌握了它的主要思想,但一直困扰我的一件事是你如何将不同的网络分成不同的物种。我已经完成了算法,但它对我来说没有多大意义,而且我阅读的论文也没有很好地解释它,所以如果有人可以解释每个组件是什么以及它在做什么,那么将非常感谢。
这两个方程是:
顺便说一句,我可以理解希腊符号,所以你不需要向我解释这些
我一直在阅读 NEAT(增强拓扑的神经进化)的工作原理,并且我已经掌握了它的主要思想,但一直困扰我的一件事是你如何将不同的网络分成不同的物种。我已经完成了算法,但它对我来说没有多大意义,而且我阅读的论文也没有很好地解释它,所以如果有人可以解释每个组件是什么以及它在做什么,那么将非常感谢。
这两个方程是:
顺便说一句,我可以理解希腊符号,所以你不需要向我解释这些
第一个方程处理距离。Delta或距离是衡量两个基因组彼此相容程度的指标。c1
,c2
和是您设置的参数来规定和的 c3
重要性。请注意,如果您更改 c或,您很可能还必须更改 dt,这是距离阈值,或者 2 个基因组之间的最大距离可能是在它们被分成不同的物种之前。表示过量基因的总数。代表两个基因组中不相交基因的总数,代表总重量差E
D
W
c1
c2
c3
E
D
W
匹配的基因之间,最后,N
代表连接数较多的基因组所具有的连接数/基因数。例如,采用以下 2 个基因组:
[[1,.25][2,.55],[4,.78],[6,.2]]
and
[[1,.15][3,.92],[5,.37]]
其中0指数代表创新数量,1指数代表权重值。E
将是 1,因为有 1 个多余的基因,基因6
。D
将是 4,因为连接2
和4
不在基因组 2 中,连接3
和5
不在基因组 1 中。W
将是 0.10,因为只有连接1
在两个基因组之间共享。
第二个公式有点复杂。根据我的理解,如果我错了,请纠正我,这是一个调整健身的公式。f′i
是调整后的适应度,它将取代原来的适应度,fi
。对于整个种群中的每个基因组,j
是的,整个种群,而不仅仅是其物种中的每个基因组,它将计算 和 之间的距离,即适合度的基因组。然后它将所有距离值相加,并将原始适应度除以总距离和,并设置为。下一个,j
i
i
fi
fi
f'i
每个物种都被分配了
f`i
与其成员生物的调整适应度之和成比例的潜在不同数量的后代。
这种物种后代数量的分配是为了让一个物种不能接管整个种群,这首先是物种形成的重点,所以总而言之,这两个公式对物种形成的功能和效率至关重要NEAT 算法。