Neuroevolution: Difference between revisions
Bsilverthorn (talk | contribs) mNo edit summary |
Replaced term 'genome' with 'network'; as it has been used in its place throughout the rest of the article |
||
Line 3: | Line 3: | ||
There are many neuroevolutionary algorithms. A distinction is made between those that 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 this distinction as a whole, adding or removing a network's connections during evolution is often referred to as complexification or simplification, respectively. Networks that evolve both the connection weights and the topology are sometimes called TWEANNs (Topology & Weight Evolving Artificial Neural Networks). |
There are many neuroevolutionary algorithms. A distinction is made between those that 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 this distinction as a whole, adding or removing a network's connections during evolution is often referred to as complexification or 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|floating-point numbers]] in the genetic algorithm's chromosomes to specify directly every value of a network's connection weights. ''Indirect'' encoding methods, which do not explicitly store every weight in |
''Direct'' encoding methods use [[floating point|floating-point numbers]] in the genetic algorithm's chromosomes to specify directly every value of a network's connection weights. ''Indirect'' encoding methods, which do not explicitly store every connection weight in the network, are also possible. |
||
==See also== |
==See also== |
Revision as of 14:59, 21 December 2007
Neuroevolution, or neuro-evolution, is a form of machine learning that uses genetic algorithms to train artificial neural networks. It is useful for applications such as games and robot 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 neuroevolutionary algorithms. A distinction is made between those that 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 this distinction as a whole, adding or removing a network's connections during evolution is often referred to as complexification or 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 every value of a network's connection weights. Indirect encoding methods, which do not explicitly store every connection weight in the network, are also possible.
See also
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)