/python-neuroevolution

An implementation of "Conventional Neuroevolution" - evolving ANNs without backpropegation

Primary LanguagePythonGNU General Public License v3.0GPL-3.0

Python-neuroevolution

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.