1. A method of learning in a neural network, comprising: determining an uncertainty associated with a first pre-synaptic spike time of a first neuron model for a pattern to be learned; and determining a delay based on the uncertainty, such that the delay added to a second pre-synaptic spike time of the first neuron model results in a causal margin of time between the delayed second pre-synaptic spike time and a post-synaptic spike time of a second neuron model.