什么是NEAT(增强拓扑的神经进化)?



我在 youtube 和互联网上查过 NEAT 是什么,但我只能找到使用 NEAT 的项目,但除了维基百科条目(它只在介绍中说了它是什么,而且很混乱(,我仍然不知道它是什么,它是一个库,它是一种神经网络吗, 它是一种训练神经网络的方法吗? 对不起,如果这是一个明显的问题。

NEAT,或增强拓扑的神经进化,是由Kenneth O'Stanley[1]引入的基于群体的进化算法。

该算法基于几个关键功能:

复杂化

初始群体中的网络是最简单的(直到完全没有连接的极端,使输入和输出神经元不连接(,并且算法仅添加新的结构元素(神经元,连接(。这样,生成的网络往往非常小。

通过历史标记避免相互竞争的公约

在普通的进化算法中,很容易发生两个个体编码相同(或非常相似(的行为,但基因型却非常不同。这称为竞争约定。当这些人受到交叉时,他们的孩子可能比父母中的任何一方都糟糕。NEAT通过保留新结构元素的历史标记来解决这个问题。当一个新的结构元素被创造出来(通过结构突变(时,它被分配了一个创新编号(并且所有产生相同元素的突变,即使在不同的个体中也被分配了相同的编号(。然后,当两个个体交叉时,他们的基因型以这样的方式对齐,即相应的创新数字匹配,只交换不同的元素。

物种形成和健身共享

NEAT与物种的概念一起工作。这只是将人口细分为几组个体,称为物种。这种细分基于个体的差异性,该差异是根据其基因型的相似比对计算的,就像进行交叉时使用的一样。因此,来自不同物种的个体杂交的概率远小于物种内部的杂交。通过促进更多相似父母的交配,孩子不太可能比父母差得多,因为父母只是兼容的。

此外,在物种内,适应性在个体之间共享。这有两个目的。(1(它保护个体免受突变的影响 - 当突变发生时,适应度通常会很低,但由于存在适应度共享,个体有时间优化自己(权重(以适应这种新的结构变化。(2(促进多样性,因为物种越大,共享的适应性就越多,物种成员的适应性就越差。

强烈建议阅读原始论文[1]。该算法描述得很好。还有一个NEAT用户页面,其中包含更多论文的链接以及NEAT的实现和使用。


[1] Kenneth O. Stanley和Risto Miikkulainen。通过增强拓扑技术发展神经网络。进化计算, 10(2(:99-127, 2002.

相关内容

  • 没有找到相关文章

最新更新