Adaptive Optimization Methods for Machine Learning