Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
157 views
in Technique[技术] by (71.8m points)

NEAT - What to do with single member species?

I'm working on implementing NEAT from scratch, and have stumbled upon an issue I can't find a concrete answer to. How does the NEAT algorithm respond to species with only a single member in them, after every other network has been speciated?

I've thought of a few possible answers to this and would appreciate any additional insight.

  1. Keep the single-member species unmodified, carrying over its only surviving member into the next generation in the hopes that sometime in the future more members for this species will be found and the species will be able to grow. The main issue with this is that NEAT assigns new species sizes based on adjusted fitnesses; which means that it might instruct (and expect) the 1-member species to grow if its fitness was better than the population average. 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 - but the small species cannot reproduce due to only having one member.

  2. Clone the only member of the species a given number of times to match NEAT's calculated new species size for this species. This doesn't seem like the best solution, as it drastically decreases variety in the population and seems like would lead to stagnation rather quickly.

  3. Reproduce the one member through a single mutation, and then crossover the now two members of this species until the new size requirement is met. Suffers from a similar issue as (2).

  4. Reproduce the one member through N mutations, where N is the new species size as calculated by NEAT. This seems to involve a high amount of randomness, and could cause new species to evolve within this species, spiraling the problem further out of control.

  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. The problem with this is the loss of potentially useful mutations/network topologies that the new network did not have time to optimize yet.

Thanks in advance!

question from:https://stackoverflow.com/questions/65895442/neat-what-to-do-with-single-member-species

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Reply

0 votes
by (71.8m points)
Waitting for answers

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
OGeek|极客中国-欢迎来到极客的世界,一个免费开放的程序员编程交流平台!开放,进步,分享!让技术改变生活,让极客改变未来! Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...