Initialize network weights do For each training sample ex Desired Output = neural-net-output (network, ex) actual = calculated output(ex) compute error (difference between desired and actual output) at the output units compute for all weights from the hidden to the output layer compute for all weights from the input to the hidden layer update network weights until all samples are classified correctly or another stopping criterion is satisfied return the network |