Neuroevolution
From Wikipedia, the free encyclopedia
Neuroevolution, or neuro-evolution, is a form of machine learning. Specifically, it is the use of genetic algorithms to train artificial neural networks. It is useful for applications such as games and robotic motor control, where it is easy to measure a network's performance at a task but difficult or impossible to create a syllabus of correct input-output pairs for use with a supervised learning algorithm.
There are many different neuroevolutionary algorithms. A distinction is made between those that only evolve the values of the connection weights for a network of pre-specified topology, vs. those that evolve the topology of the network in addition to the weights. Although there are no standardized terms for the distinction as a whole, adding or removing a network's connections during evolution is often referred to as complexification and simplification, respectively. Networks that evolve both the connection weights and the topology are sometimes called TWEANNs (Topology & Weight Evolving Artificial Neural Networks).
Direct-encoding methods use floating-point numbers in the genetic algorithm's chromosomes to specify directly the values of a network's connection weights. More sophisticated indirect encoding methods are also possible.
[edit] See also
[edit] External links
- University of Texas neuroevolution page (has downloadable papers on methods and applications)
- ANNEvolve is an Open Source AI Research Project (Has downloadable source code in C and Python for a variety of interesting problems. Also a tutorial & miscellaneous writings and illustrations)