Neuroevolution is subcategory of machine learning that applies evolutionary computation to generate artificial neural networks. Traditionally neural networks are trained using the backpropagation algorithm. Back propagation is limited in its application especially in scenarios where a training set of sufficient size is unavailable as in artificial life or evolutionary robotics. Backpropagation also puts a lot of constraints on the topology of the network. The number of hidden layers as well as the number of neurons per layer need to be known in advance, the activation function must be differentiable, the network must be fully connected and recurrent connections are not allowed. Neuroevolution provides an alternative approach which generates nets that don’t suffer from these limitations and can evolve to any topology.
In this talk, I take you on a journey where we first explore the foundation of artificial neural networks and evolutionary computation. In the latter half you will learn how to combine the two and create a general-purpose platform for neural network based systems from cleaning robots to financial oracles.
[Useful link: The Handbook of Neuroevolution in Erlang]