Optimization for Training Deep Models