Most of my time has resided in biogenesis. I created a branch of our first version, gutted the behavior manager, sensors, and training thread to start from scratch. I got rid of NEAT’s INetworkEvaluators and implemented my own similar interface that I think will allow for the type of training I have in mind.
The population evaluator now runs in ‘Passes’, where a Pass defines two objects: a system of evaluation, and a space in which training takes place. These were designed under the ‘design by contract’ paradigm which I’m exploring heavily with this new system.
The problem I hope this solves is setting up a system where the following training methods are easily implemented with my updated TrainingManager class:
- Remedial Training
- Small goal oriented training
- Simultaneous and Sequential sets of above goals
- Dynamic input\output neurons depending on the trainee
- ‘Plug and Play’ training systems
This method was designed to reinforce our original design which included remedial training and training in sequences of small goals, but done in a much more abstract, robust, and well defined way. The idea to continue and strengthen\revisit this design includes several reasons:
- The organisms were training quickly and had potential but anything past basic field navigation, evasion, and food gathering never showed. Complex networks also had trouble showing up.
- The ideas described in http://www.pnas.org/content/102/39/13773.abstract formally addressed our approach.
The aforementioned paper details how spontaneous modularity in evolved networks arise in evaluation that include frequent sub goal changes (where sub goals have some underlying similarity). This is one approach to the problem of having a population be stuck in a local maxima “because the fitness landscape changes each time that the goal changes, modularly varying goals can help move the population from these local traps.” It is my hope that by creating an abstracted implementation of the TrainingManager that furthers these ideas, when we get to the point of greatly varying organisms the training will naturally develop unique behavior based on the organism’s abilities.
My tests are currently running correctly without sensors, so my current goal is to finish the sensor and behavior management systems and integrate them with the trainer.