当添加新的节点基因时,是分配全局编号还是本地编号?Neat

我正在尝试用Python实现一个NEAT(增强拓扑的神经进化)算法,但在观看多个指南和阅读原始论文后,我还有一个问题。当创建一个新的节点/神经元时,它的节点基因是分配一个全局编号还是一个本地编号?

论文听起来像是全局编号,但如果真是这样的话,如果节点创建的顺序不同,即使连接相同,连接基因也可能会有不同;然而,如果是本地编号,那么根据神经网络的不同,连接基因的来源和去向/输入输出连接基因将会有所不同。希望这有意义,如果没有,请告诉我,任何帮助都将不胜感激!


回答:

我甚至不确定“本地编号”是否有意义!创新编号的想法正是为了让我们能够轻松地比较不同基因组之间的结构。

当创建新节点时,通常一个连接会被分成两个,在中间添加一个新节点。这个事件会被记录在日志中,因此如果后来另一个不同的基因组尝试通过分裂相同的连接来创建一个新节点,那么将使用相同的创新编号。

当然,通过一种迂回的方式,可以创建两个结构相同但创新编号不同的基因组。这是被接受的。

我添加了一个这样的例子图表,让我知道你是否在考虑不同的情况:

enter image description here

请注意,一些实现对连接和节点都有创新编号,而另一些实现仅对节点有这样的编号,连接完全由它们连接的节点来描述。在第一种情况下,也可能出现具有不同创新编号的等效连接,但这也没问题。关于这些更细微的细节一直有些争论,但在实践中,似乎影响甚微,如果有的话。

Related Posts

使用LSTM在Python中预测未来值

这段代码可以预测指定股票的当前日期之前的值,但不能预测…

如何在gensim的word2vec模型中查找双词组的相似性

我有一个word2vec模型,假设我使用的是googl…

dask_xgboost.predict 可以工作但无法显示 – 数据必须是一维的

我试图使用 XGBoost 创建模型。 看起来我成功地…

ML Tuning – Cross Validation in Spark

我在https://spark.apache.org/…

如何在React JS中使用fetch从REST API获取预测

我正在开发一个应用程序,其中Flask REST AP…

如何分析ML.NET中多类分类预测得分数组?

我在ML.NET中创建了一个多类分类项目。该项目可以对…

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注