1. A learning method for transforming an untrained network to a trained network, said network comprising an input layer, a middle layer and an output layer, each said layer including a plurality of neurons, each said neuron being a signal processing element, said middle layer being arranged between said input and output layers wherein each neuron in said middle layer is connected to each neuron in said input and output layers, said method comprising the steps of: determining an activation pattern of neurons in said input layer; determining an activation pattern of neurons in said output layer; increasing the value of weights applied to all neurons in said input layer which are connected to a neuron in said middle layer and weights applied to all neurons in said output layer which are connected to said neuron in said middle layer, so that a summation over a number of said neurons becomes a minimum value, said summation being an absolute value of a difference between neuron output data from said input layer and neuron output data from said middle layer plus an absolute value of a difference between neuron output data from said middle layer and neuron output data from said output layer; and repeating the above steps for each said neuron in said middle layer, thereby generating a desired activation pattern of neurons in said middle layer corresponding to said trained network.