1. A method for processing information using at least one artificial neuron, said at least one artificial neuron for receiving a first and a second class of input, wherein at least one of said first and said second class comprises a plurality of inputs, and for generating an output, the method comprising: providing said first class of input, each input having a weight and an activity; providing said second class of input, each input having a weight and an activity; selecting a value for said weight for each input in said first class to maximize a discrepancy corresponding to said output of said neuron; selecting a value for said weight for each input in said second class to minimize said discrepancy corresponding to said output of said at least one artificial neuron; and generating said output corresponding to said discrepancy, said discrepancy being between a weighted sum of activities of said first and said second class of input; wherein said at least one artificial neuron predicts an aspect of the world that is informative to said at least one artificial neuron, said aspect of the world being difficult for said at least one artificial neuron to predict.