In this chapter:
An artificial neural network (NN) is a computational device that consists of many simple connected units (neurons) that work in parallel. The connections between the units or nodes are usually weighted by real-valued weights. Weights are the primary means of learning in neural networks, and a learning algorithm is usually used to adjust the weights.
Structurally, a neural network has three different classes of units: input, hidden, and output units. An activation pattern is presented on its input units and spreads in a forward direction from the input units through one or more layers of hidden units to the output units. The activation coming into a unit from other units is multiplied by the weights on the links over which it spreads. All incoming activation is then added together and the unit becomes activated only if the incoming result is above the unitís threshold.
In summary, the basic elements of a neural network are the units, the connections between units, the weights, and the thresholds. And these are the elements one must encode in a linear chromosome in order to simulate fully a neural network so that it can adapt in a particular selection environment. For that I created a chromosomal organization similar to the one used to handle random numerical constants described in the
In this chapter we are going to learn how to modify the chromosomes of gene expression programming so that a complete neural network, including the architecture, the weights, and thresholds, can be totally encoded in a linear chromosome. Furthermore, we will see how this chromosomal organization allows also the training (evolution, in this case) of the neural network using the selection and modification mechanisms of gene expression programming, allowing the discovery of solutions in the form of neural networks. In addition, we will see that these neural networks can be fully scrutinized as all the necessary information to their construction is available.