<p>An artificial neural network that self-organizes to recognize various images presented as a training set is described. One application of the network uses multiple functionally disjoint stages to provide pattern recognition that is invariant to translations of the object in the image plane. The general form of the network uses three stages that perform the functionally disjoint tasks of preprocessing, invariance, and recognition. The preprocessing stage is a single layer of processing elements that performs dynamic thresholding and intensity scaling. The invariance stage is a multilayered connectionist implementation of a modified Walsh-Hadamard transform used for generating an invariant representation of the image. The recognition stage is a multilayered self-organizing neural network that learns to recognize the representation of the input image generated by the invariance stage. The network can successfully self-organize to recognize objects without regard to the location of the object in the image field and has some resistance to noise and distortions.</p>