Neuron inputs are encoded as spike patterns, and the neuron is trained to identify input pattern similarities. Similar input patterns are mapped to a much smaller set of similar output patterns, thereby dividing the input patterns into identifiable clusters.