Gradient-Based Learning Algorithms for Recurrent Networks