A Concurrent Training Algorithm for Supervised Learning in Artificial Neural Networks