github.com/yaricom/goNEAT@v0.0.0-20210507221059-e2110b885482/data/xor_test.neat.yml (about)

     1  # The XOR experiment context
     2  neat:
     3    # Probability of mutating a single trait param
     4    trait_param_mut_prob:  0.5
     5    # Power of mutation on a single trait param
     6    trait_mutation_power:  1.0
     7    # The power of a link weight mutation
     8    weight_mut_power:  2.5
     9  
    10    # 3 global coefficients are used to determine the formula for computing the compatibility between 2 genomes.
    11    # The formula is: disjoint_coeff * pdg + excess_coeff * peg + mutdiff_coeff * mdmg.
    12    # See the Compatibility method in the Genome class for more info
    13    # They can be thought of as the importance of disjoint Genes, excess Genes, and parametric difference between Genes of
    14    # the same function, respectively.
    15    disjoint_coeff:  1.0
    16    excess_coeff:  1.0
    17    mutdiff_coeff:  0.4
    18  
    19    # This global tells compatibility threshold under which two Genomes are considered the same species
    20    compat_threshold:  3.0
    21    # How much does age matter? Gives a fitness boost up to some young age (niching). If it is 1, then young species get no fitness boost.
    22    age_significance:  1.0
    23    # Percent of average fitness for survival, how many get to reproduce based on survival_thresh * pop_size
    24    survival_thresh:  0.2
    25  
    26    # Probabilities of a non-mating reproduction
    27    mutate_only_prob:  0.25
    28    # Probability of genome trait mutation
    29    mutate_random_trait_prob:  0.1
    30    # Probability  of link trait mutation
    31    mutate_link_trait_prob:  0.1
    32    # Probability of node trait mutation
    33    mutate_node_trait_prob:  0.1
    34    # Probability of link weight value mutation
    35    mutate_link_weights_prob:  0.9
    36    # Probability of enabling/disabling of specific link/gene
    37    mutate_toggle_enable_prob:  0.0
    38    # Probability of finding the first disabled gene and re-enabling it
    39    mutate_gene_reenable_prob:  0.0
    40    # Probability of adding new node
    41    mutate_add_node_prob:  0.03
    42    # Probability of adding new link between nodes
    43    mutate_add_link_prob:  0.08
    44    # Probability of making connections from disconnected sensors (input, bias type neurons)
    45    mutate_connect_sensors: 0.5
    46  
    47    # Probability of mating between different species
    48    interspecies_mate_rate:  0.001
    49    # Probability of mating this Genome with another Genome g. For every point in each Genome, where each Genome shares
    50    # the innovation number, the Gene is chosen randomly from either parent.  If one parent has an innovation absent in
    51    # the other, the baby may inherit the innovation if it is from the more fit parent.
    52    mate_multipoint_prob:  0.3
    53    # Probability of mating like in multipoint, but instead of selecting one or the other when the innovation numbers match,
    54    # it averages their weights.
    55    mate_multipoint_avg_prob:  0.3
    56    # Probability of mating similar to a standard single point CROSSOVER operator. Traits are averaged as in the previous two
    57    # mating methods. A Gene is chosen in the smaller Genome for splitting. When the Gene is reached, it is averaged with
    58    # the matching Gene from the larger Genome, if one exists. Then every other Gene is taken from the larger Genome.
    59    mate_singlepoint_prob:  0.3
    60  
    61    # Probability of mating without mutation
    62    mate_only_prob:  0.2
    63  
    64    # Probability of forcing selection of ONLY links that are naturally recurrent
    65    recur_only_prob:  0.0
    66  
    67    # The number of babies to stolen off to the champions
    68    babies_stolen:  0
    69    # The population size as a number of organisms
    70    pop_size:  200
    71    # Age when Species starts to be penalized
    72    dropoff_age:  50
    73    # Number of tries mutate_add_link will attempt to find an open link
    74    newlink_tries:  50
    75    # Tells to print population to file every n generations
    76    print_every:  10
    77  
    78    # The number of runs to average over in an experiment
    79    num_runs:  100
    80    # The number of epochs (generations) to execute training
    81    num_generations: 100
    82  
    83    # The epoch's executor type to apply [sequential, parallel]
    84    epoch_executor: sequential
    85  
    86    # The genome compatibility method to use [linear, fast]. The later is best for bigger genomes
    87    genome_compat_method: fast
    88  
    89    # The log level
    90    log_level: Info
    91  
    92    # The nodes activation functions list to choose from (activation function -> it's selection probability)
    93    node_activators:
    94      - SigmoidBipolarActivation 0.25
    95      - GaussianBipolarActivation 0.35
    96      - LinearAbsActivation 0.15
    97      - SineActivation 0.25