Skip to content

Clan-labs/Spiking-Evolution

master
Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?
Code

Files

Permalink
Failed to load latest commit information.
Type
Name
Latest commit message
Commit time
January 5, 2021 00:12
doc
January 5, 2021 00:12
January 5, 2021 00:12
lib
January 5, 2021 00:12
src
January 5, 2021 00:12
January 5, 2021 00:12
January 5, 2021 00:12
January 5, 2021 00:12
January 5, 2021 00:12
April 13, 2021 15:14
January 5, 2021 00:12

A multi-agent evolutionary robotics framework to train spiking neural networks

A novel multi-agent evolutionary robotics (ER) based framework, inspired by competitive evolutionary environments in nature, is demonstrated for training Spiking Neural Networks (SNN). The weights of a population of SNNs along with morphological parameters of bots they control in the ER environment are treated as phenotypes. Rules of the framework select certain bots and their SNNs for reproduction and others for elimination based on their efficacy in capturing food in a competitive environment. While the bots and their SNNs are given no explicit reward to survive or reproduce via any loss function, these drives emerge implicitly as they evolve to hunt food and survive within these rules. Their efficiency in capturing food as a function of generations exhibit the evolutionary signature of punctuated equilibria. Two evolutionary inheritance algorithms on the phenotypes, Mutation and Crossover with Mutation, are demonstrated. Performances of these algorithms are compared using ensembles of 100 experiments for each algorithm. We find that Crossover with Mutation promotes 40% faster learning in the SNN than mere Mutation with a statistically significant margin.

Instructions

  1. To simulate 100 runs of the evolutionary algorithm variants create a folder for each variant.
  2. The instructions provided ahead are for the "Mutation only" variant but can also be replicated for other variants.
  3. Create a folder for the mutation only variant let us say "evolution_mutation".
  4. Navigate into this folder and create 100 more folders for 100 random runs. You may name them as "evolution_mutation_seed_1", "evolution_mutation_seed_2" ... "evolution_mutation_seed_100".
  5. Within each folder there should be a "run.sh" file for simulating the expirement pertaining to a single seed.
  6. The parameters of the "run.sh" can be changed accordingly and the details pertaining to the parameters is given in the table above.
  7. Once a run within a folder is completed, you can generate a plot of timesteps to food versus generations by running the following command within the folder: "root -l -b -q '~/Spiking-Evolution/AnalysisScripts/DisplayPlots.cc("evolution_mutation_seed_'insert seed number here'")'.
  8. Repeat the procedure for all the 100 seeds.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published