An implementation of a simple 3 layer ANN, which evolves it's weights using a Genetic Algorithim instead of the traditional "Backpropegation" method. Implemented with Numpy
My main motivation for avoiding backpropegation is that I don't intuitivly understand the math behind it. I understand the mechanism that a genetic algorithim uses to evolve. Luckily, this idea has been recently studied and is called "Neroevolution"
Conventional Neuroevolution is generally considered to be inferior to SGD - but Neurevolution of the network topology has been reported to be competative with traditional techniques. My next steps for this code include implementing a GA to vary things like network size - but really, I'm just going to keep bolting on features at my own pace.