Optimization for Deep Learning