1. A method of training a neural network comprising a plurality of neurons having weights connections between respective ones of said neurons to compute plausible inference based on data information, the process comprising the steps of: (a) firing each of a plurality of input neurons, with an analog signal valued between 0 and 1, to a group of neurons connected to each respective fired input neuron; (b) receiving the weighted sum of signals at a plurality of hidden neuron, which is the action potential; (c) competing for activation among said plurality of hidden neurons; (d) for each hidden neuron, if the ratio of its action potential and the highest action potential passes a threshold, firing said hidden neuron, otherwise remaining at rest; and (e) normalizing the action potential in the group of hidden neuron, said normalized action potential comprising the signal of the neuron output.