1. A method comprising the steps in the following order of: performing an initial backpropagation to train a neural network with plurality of layers having: an input layer of input units; and different layers of processing elements including an output layer having output processing elements and at least one hidden layer having hidden processing elements, each processing element having input weights; comparing hidden processing elements so as to find hidden processing elements common to at least one given layer of said plurality of layers and which have similar patterns of information; replacing the similar pattern hidden processing elements with a single hidden processing element having information from one or more of the similar pattern hidden processing elements until each hidden processing element in each given layer has a distinctive pattern of information; and performing a further backpropagation on the neural network.