Optimizing Optimizers for Fast Gradient-Based Learning