- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正致力于从头开始实现 NEAT,并且偶然发现了一个我找不到具体答案的问题。在所有其他网络都被指定之后,NEAT 算法如何响应其中只有一个成员的物种?
我已经想到了几个可能的答案,如果有任何额外的见解,我将不胜感激。
保持单成员物种不变,将其唯一幸存的成员传给下一代,希望在未来的某个时候能找到更多该物种的成员,并且该物种能够生长。这样做的主要问题是 NEAT 根据调整后的适应度分配新物种的大小;这意味着如果它的适应性好于种群平均水平,它可能会指示(并期望)1 成员物种生长。假设我们有两个物种:大小为 99 和 1 个成员 - NEAT 会(假设较小的物种具有更高的适应性)然后使 99 个物种缩小而 1 个成员物种生长 - 但小物种由于只有一个而无法繁殖成员(member)。
将物种的唯一成员克隆给定次数,以匹配 NEAT 为该物种计算的新物种大小。这似乎不是最佳解决方案,因为它会大大减少人口的多样性,而且似乎会很快导致停滞。
通过单一突变繁殖一个成员,然后交叉该物种的现有两个成员,直到满足新的大小要求。遇到与 (2) 类似的问题。
通过 N 次突变复制一个成员,其中 N 是 NEAT 计算的新物种大小。这似乎涉及大量的随机性,并可能导致新物种在该物种内进化,使问题进一步失控。
在物种形成阶段结束时,将该物种的唯一成员与一些更大的物种混为一谈,并导致其当前物种灭绝。这样做的问题是丢失了新网络还没有时间优化的潜在有用的突变/网络拓扑。
提前致谢!
最佳答案
我只是想添加评论,但我没有足够的声誉,所以我会写一个答案,为了让它更长,我会根据我对 neat 的了解,评论一些我不太同意的部分。
首先,我认为您应该看看 youtube 上的 Finn Eggers channel (或其他实现,我说这个是因为我看过视频),他实现了整洁,在视频 8 中(我认为)他处理了这个问题。他所做的是将所有具有 1 个成员的物种标记为“灭绝”并将其移除。事实上,如果该物种只有 1 个成员,则意味着所有成员都被杀死,并且当他们的分数较低时会发生这种情况,因此保留该物种没有意义。
Let's say we have two species: 99 and 1 members in size - NEAT would (assuming the smaller species has a higher fitness) then make the 99 species shrink and the 1 member species grow
我不明白这一点:假设您从 2 个物种开始,每个物种 50 个成员,杀死前 80% 的种群(基于适应度得分),繁殖幸存者并以 99-1 结束。这是什么意思?
首先,这意味着您杀死的 80 只个体中有 49 只来自物种 2,31 只来自物种 1,这意味着物种 2 中的个体比物种 1 中的个体更差。
此外,您没有第 2 个物种的新生儿:当 parent 不属于该物种时,就会发生这种情况,也许一个是,但 child 仍然不能归类为该物种的成员。由于 parent 的选择也是基于适应度得分,这意味着物种 1 的元素比物种 2 的唯一幸存者得分更高,并且被更频繁地选择,所以我们仍然认为物种 1 比 2 好。总之,如果一个物种最终只有一个成员并且没有成长,这意味着它很烂。
but the small species cannot reproduce due to only having one member.
1 个成员物种可以变得更大:你可以从两个不同的物种中取两个 parent ,创建一个 child ,如果距离函数告诉 child 属于那个物种,你就把它放在那里。您不需要拥有来自同一物种的所有 parent 来为那个创造一个 child 。
5.Chuck the only member of the species in with some larger species at the end of the speciation phase, and cause its current species to go extinct.
你不能只把一个成员放在另一个物种中:如果与其他物种的距离太远,你必须有一个特定的物种,即使它只是一个成员
关于NEAT - 如何处理单一成员物种?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65895442/
列出在“Karkato”(这是一个 location_name)发现的前 5 个物种(spID、common_name、number_collected) 给出了下表: species(spID, g
t("helpers.links.new")), new_equipment_path, :class => 'btn btn-primary' %> 我在 View 中有上述代码,但单击链接时出现
我是一名优秀的程序员,十分优秀!