1
$\begingroup$

I tried implementing NEAT algorithm from scratch, and it successfully solves XOR problem. I followed the original NEAT paper.

However, when I run XOR problem solving test and calculate average convergence generations, it converges slowly with speciation, and it is much better and faster without speciation. Complexity of the solution was also smaller without speciation.

Original author of NEAT emphasizes the importance of speciation, so my implementation or parameters must be incomplete somewhere. But I failed to find the evidence that speciation actually helps the algorithm to work better. Is there any performance evaluation resources regarding effectiveness of speciation?

Thank you very much.


Here are my parameters:

input_number = 2
output_number = 1
population = 150

hidden_activation = 'Sigmoid'
output_activation = 'Sigmoid'

[mutation] 
weight_perturbation = 0.8
weight_assign = 0.1
add_connection = 0.5
remove_connection = 0.5
toggle_connection = 0.0
add_node = 0.2
remove_node = 0.2

weight_min = -15.0
weight_max = 15.0

perturb_min = -1.0
perturb_max = 1.0

[speciation]
c1 = 1.0
c2 = 0.5
compatibility_threshold = 8.0
elitism = 1

survival_rate = 0.07

Implementation source repository : https://github.com/suhdonghwi/neat

$\endgroup$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Browse other questions tagged or ask your own question.