Machine Learning Foundations