Large Scale Optimization for Machine Learning