1. A method of training and operating a neural network system having a plurality of hierarchical neural networks each having at least one intermediate layer and an output layer, comprising the steps of: (a) providing a common input layer commonly used by the hierarchical neural networks as an input layer; (b) storing a teaching pattern for the common input layer and the output layer of corresponding neural networks; (c) processing the teaching pattern in each of the corresponding neural networks to obtain an output pattern from each output layer of the corresponding neural networks; (d) calculating an error between the output pattern and the teaching pattern in each of the corresponding neural networks; (e) adjusting weighting values in each of the corresponding neural networks in dependence upon the error calculated in step (d); (f) storing an input pattern for the common input layer; and (g) selecting at least one of the corresponding neural networks when an operation is performed on the input pattern in the neural network system.