This is a very minimal implementation of the ideas presented deep neuroevolution utilizing numpy and DEAP. An XOR example is provided to verify correctness.
- python 3.x
- numpy
- DEAP
- (soon) reikna
- In the XOR example, truncation selection is used. However, the generation's best are selected from a double tournament with a tunable parsimony pressure parameter that helps mitigate excessive growth of genomes
- More mutation operators than are described in the original paper are experimentally implemented: add, drop and mutate seed value
- The seed values are just unsigned 64-bit integers. The original paper describes a method to control the size of the seed values, but I have not implemented this yet
- Only FC feedforward layers are currently supported, but I'm planning on adding more types of layers
- Use reikna to accelerate the forward pass on the GPU with CUDA/OpenCL
- Improve layer & parameter configuration to be encapsulated and perfectly reproducible per experiment