Species extinction removes an evolutionary species from the population when it no longer persists or remains viable. In NEAT, extinction is a deliberate selection mechanism: stagnant or overly specialized species are culled so new groups can form and population diversity can recover. section 10.5 section 10.6
NEAT uses extinction to manage evolving network populations:
- Groups genomes into species according to network similarity, preserving diversity during optimization. section 10.5
- Treats stagnation as a reason to remove a species rather than allowing it to remain specialized around a local maximum or minimum. section 10.5
- Checks species after a configurable number of generations and can reset the population when extinction occurs. section 10.5.1
Extinction during circles classification
A NEAT run evolves networks for a binary circles problem. With compatibility_threshold set to 1.0 and max_stagnation set to 25, species are grouped by network similarity and checked for prolonged lack of progress. Stagnant groups can be culled while other groups continue evolving. section 10.5.1
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 enables population reset, species compatibility control, and mutation settings. section 10.5.1
Listing 10.20 EDL_10_5_NEAT_Speciation.ipynb: More NEAT configuration options
weight_max_value = 30 weight_min_value = -30 weight_init_mean = 0.0 weight_init_stdev = 1.0 weight_mutate_rate = 0.08 #1 weight_replace_rate = 0.01 #2 weight_mutate_power = 0.1 #3 enabled_default = True enabled_mutate_rate = 0.01 [DefaultSpeciesSet] compatibility_threshold = 1.0 #4 [DefaultStagnation] species_fitness_func = max max_stagnation = 25 #5
Inspect the stagnation threshold and compatibility threshold used to decide how species are grouped and when they become candidates for extinction. section 10.5.1
