【问题标题】:How does the NEAT speciation algorithm work?NEAT 物种形成算法如何工作?
【发布时间】:2019-05-16 19:24:22
【问题描述】:

我一直在阅读 NEAT(增强拓扑的神经进化)的工作原理,并且我已经掌握了它的主要思想,但一直困扰我的一件事是你如何将不同的网络划分为物种。我已经完成了算法,但它对我来说没有多大意义,而且我阅读的论文也没有很好地解释它,所以如果有人可以解释每个组件是什么以及它在做什么,那么非常感谢。

这两个方程是:

The original paper

【问题讨论】:

  • 应该清楚,即使在发布之后,这里支持 LaTex 渲染...
  • 啊对不起,我把它放在这里的原因是因为我要用它来编写一个使用 NEAT 的人工智能。还考虑到 LaTex 问题,我是新手,所以我不完全知道它是如何工作的,所以任何帮助都会很棒
  • 对某事不熟悉但还不知道它是如何工作的,这完全没问题;看到您发布的内容看起来像是胡言乱语,而让它保持这种状态则不是。 假设您的问题是主题(不是),最好只粘贴论文中的方程式图像...
  • 我对这个相关问题的回答可能对您有所帮助。一种常见的形成物种的方法是在基因组上使用 k-means(可以通过 NEAT 编码信息的方式进行比较)。 stackoverflow.com/questions/50960834/neat-speciating/…

标签: machine-learning artificial-intelligence genetic-algorithm


【解决方案1】:

NEAT 中的物种形成类似于其他进化算法使用的适应度共享。这样做的目的是惩罚类似的解决方案,从而对更多样化的人群造成压力。

delta 项是两个解决方案之间距离的度量。这里使用的距离测量专门用于 NEAT 使用的可变长度基因组。较小的 delta 值表示更相似的解决方案。

如果两个解决方案之间的距离分别大于或小于给定阈值,则 NEAT 中实现的共享函数会产生 0 或 1 的值。将每个解决方案与候选群体中的其他解决方案进行比较,并通过结果共享函数值的总和来修改适应度。如果一个解决方案与群体中的其他几个解决方案相似,它的修正适应度将显着降低。

【讨论】:

  • 谢谢,如果您不介意回答,我还有 3 个问题。 1. 在交叉过程中,除了通过历史标记获得的额外连接外,后代是否继承了更合适的父母的结构和权重? 2. 在我读过的 delta-fitness 函数中,“W”是匹配基因之间的平均体重差异。这是否意味着所有排列的连接计算权重差异,然后得到平均值? 3. 在计算调整后的适应度时,您会将其与每个 NeuralNet 进行比较还是仅与其物种组中的那些进行比较?
  • 对于交叉有不同的实现。典型的做法是随机继承共同的特征,然后从适者那里继承那些排他性的,只有在一定的机会下,才会继承弱者的那些。
  • 公平警告,我熟悉 NEAT 背后的想法,但不熟悉具体的实现。 1. 我相信巴勃罗是正确的。 2.我也相信你的评估是正确的,它只是属于匹配连接的权重的平均差异。 3. 将它与种群中的所有其他解决方案进行比较,在您比较它们之前,您无法知道解决方案是否属于同一物种。如果两个解决方案属于不同的物种,那么比较它们将产生一个共享函数值 0,导致修改后的适应度没有变化。
猜你喜欢
  • 2021-04-29
  • 2022-07-26
  • 2018-11-30
  • 2023-04-01
  • 2023-03-13
  • 2017-06-06
  • 1970-01-01
  • 1970-01-01
  • 2012-12-20
相关资源
最近更新 更多