A species groups evolutionary individuals—here, neural-network genomes with similar features—so NEAT can evaluate and manage related networks as populations. section 10.6
NEAT uses compatibility to control which genomes share a species. A compatibility threshold determines the number of groups, while stagnation tracking identifies species that stop improving. section 10.5.1 section 10.6
Tune speciation experimentally by changing:
- compatibility_threshold to increase or decrease the number of species section 10.5.2
- max_stagnation to change how many generations pass before checking for extinction section 10.5.1 section 10.5.2
- population size to inspect how small populations affect speciation section 10.5.2
Circles classification
During NEAT evolution on circles, early generations track three species. Species can later become stagnant, be culled, and make room for new groups within the fixed population. section 10.5.1 section 10.6
Listing 10.19 EDL_10_5_NEAT_Speciation.ipynb: NEAT configuration options
[NEAT] fitness_criterion = max fitness_threshold = .85 #1 pop_size = 100 reset_on_extinction = 1 [DefaultGenome] num_inputs = 2 num_hidden = 25 #2 num_outputs = 1 initial_connection = partial_direct 0.5 feed_forward = True compatibility_disjoint_coefficient = 1.0 compatibility_weight_coefficient = 0.6 conn_add_prob = 0.02 #3 conn_delete_prob = 0.02 #3 node_add_prob = 0.02 #4 node_delete_prob = 0.02 #4
Inspect the NEAT configuration that combines compatibility-based grouping with mutation probabilities for evolving network structure. section 10.5.1
