Feed-Forward Neural Network Training Algorithm