Efficient Optimization Algorithms For Machine Learning