我已经查看了NEAT在youtube和互联网上的情况,但是我只能使用NEAT查找项目,但是除了Wikipedia条目(该条目仅说明了引言,而且非常令人困惑)之外,我仍然不知道什么是,是一个库,是一种神经网络,是一种训练神经网络的方法吗?
抱歉,这是一个明显的问题。

最佳答案

NEAT或增强拓扑的神经进化,是Kenneth O'Stanley [1]提出的基于种群的进化算法。

该算法基于以下几个关键特征:

复杂化

初始种群中的网络是最简单的网络(到根本没有连接的极端,输入和输出神经元不连接),该算法仅添加了新的结构元素(神经元,连接)。这样,所得的网络往往很小。

通过历史标记避免竞争惯例

在普通的进化算法中,很容易发生两个人编码相同(或非常相似)行为但基因型非常不同的行为。这称为竞争惯例。当这些人经历分娩时,他们的孩子可能比父母一方更糟。 NEAT通过保留新结构元素的历史标记来解决此问题。当创建一个新的结构元素(通过结构突变)时,会为其分配一个创新编号(所有产生相同元素的突变(即使在不同的个体中,也都会分配此相同的编号))。然后,当两个人交叉时,他们的基因型将以相应的创新编号匹配且仅交换不同元素的方式进行排列。

物种和健身共享

NEAT遵循物种的概念。这只是将人口细分为几类称为种的个体。该细分基于个体的不相似性,该不相似性是根据进行交叉时所使用的基因型相似比对计算得出的。因此,跨越不同物种的个体的概率要比物种内部的跨越小得多。通过促进更多相似父母的交配,孩子比父母更不可能变得更糟,因为父母只是相容的。

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

我强烈建议阅读原始论文[1]。该算法描述得很好。还有一个NEAT Users Page,它具有指向更多论文的更多链接,以及NEAT的实现和使用。



[1]肯尼斯·史丹利(Kenneth O. Stanley)和里斯托·米库库莱宁(Risto Miikkulainen)。通过扩展拓扑发展神经网络。进化计算,10(2):99-127,2002。

08-25 06:19