Genetic Neural Network Evolution System
The genesis-ai open source project is an attempt to develop complex neural network behavior by means of evolutionary techniques. A neural network system is implemented that allows changes in the internal structure of a neural network to occur over successive generations. An interface is implemented which allows the neural networks to receive input from, and provide output to, an externally defined environment. Criteria defined by the external environment are used to score neural networks and mutation and/or mating of the higher scoring networks will tend to produce higher scoring successive generations. When a sufficiently high scoring population of networks has evolved, the original environment and/or scoring criteria can be expanded or otherwise made more difficult and the above process repeated.
The development challenge is to define successive environments in which complex neural network behavior can can be evolved.
The neural network implementation is a recursive network with variable order connections. Recursive networks can have connections which go in any direction. Variable order connections can be formed from any number of nodes (although in practice small numbers are used). In the above figure, the horizontal arrows represent connections. An "X" on an arrow indicates multiplication by the output of the node the X is under. For example, the bottom connection is a second order connection; the input to N6 is proportional to N1 * N5.
(the network diagram above is a simple network that implements delta rule learing)
6 Sept 2001:
base library in cvs, can be downloaded using anonymous cvs
still porting more packages
Documentation (draft) also in cvs or in postscript:genesis.ps