Machine learning techniques enable us to automatically extract features from data so as to solve predictive tasks, such as speech recognition, object recognition, machine translation, question-answering, anomaly detection, medical diagnosis and prognosis, automatic algorithm configuration, personalization, robot control, time series forecasting, and much more. Learning systems adapt so that they can solve new tasks, related to previously encountered tasks, more efficiently. 

This course will introduce the field of Machine Learning, in particular focusing on the core concepts of supervised and unsupervised learning. In supervised learning we will discuss algorithms which are trained on input data labeled with a desired output, for instance an image of a face and the name of the person whose face it is, and learn a function mapping from the input to the output. Unsupervised learning aims to discover latent structure in an input signal where no output labels are available, an example of which is grouping web-pages based on the topics they discuss. Students will learn the algorithms which underpin many popular Machine Learning techniques, as well as developing an understanding of the theoretical relationships between these algorithms. 

The practical’s will concern the application of machine learning to a range of real-world problems. It will also cover empirical methods for comparing learning algorithms, for understanding and explaining their differences, for analyzing the conditions in which a method is more suitable than others. In the laboratory session students will practice simple learning problems starting from supervised learning like predictions (Linear Regression, Logistic Regression for classification) to various classification methods including K-nearest neighbor, decision trees, Naive Bayes classifier, support vector machines, and neural networks. Students will also practice unsupervised learning like clustering (K-Means) and dimension reduction.