Optimization for Probabilistic Machine Learning