A method of training a biological neural network using a controller,
comprising: applying a cycle comprising: stimulating a neural network
by said controller applying at least an input signal to the network;
detecting an output response of the network by said controller; and
modifying said stimulation by said controller for at least a period of
time if said response matches a desired at least approximate response;
and repeating said cycle of stimulation, detection and modification at
least one more time until said neural network is trained to generate a
desired output response for said input signal.