CS342 Machine Learning
CS342 15 CATS (7.5 ECTS) Term 2
Availability
Option - CS, CSE and DM
Academic Aims
To provide students with an in-depth introduction to two main areas of Machine Learning: supervised and unsupervised. We will cover some of the main models and algorithms for regression, classification, clustering and Markov decision processes. Topics will include linear and logistic regression, regularisation, MLE, probabilistic (Bayesian) inference, SVMs and kernel methods, ANNs, clustering, and dimensionality reduction. The module will use primarily the Python programming language and assumes familiarity with linear algebra, probability theory, and programming in Python.
Learning Outcomes
By the end of the module, students should:
- develop an appreciation for what is involved in learning from data.
- understand a wide variety of learning algorithms.
- understand how to apply a variety of learning algorithms to data.
- understand how to perform evaluation of learning algorithms and model selection.
Content
- Linear Regression and regularisation (OLS, PLS, Lasso)
- Instance-based Learning and Decision Tree Induction
- Maximum Likelihood (Linear and Logistic regression)
- Probabilistic (Bayesian) Inference (Linear regression, Logistic regression with the Laplace approximation, Intro to Sampling)
- Support Vector Machines
- Artificial Neural Networks: perceptron, MLPs, back propagation, intro to Deep Learning
- Ensemble learning, bagging, boosting, stacking, random forests
- Clustering algorithms, k-means, Expectation-Maximization, and Gaussian Mixture Models
- Dimensionality reduction techniques, SVD/PCA, Multi-dimensional scaling
Books
Parts of the module are covered in the following books:
- Rogers S and Girolami M, A first course in Machine Learning, CRC Press, 2011
- Bishop C, Pattern Recognition and Machine Learning, 2007
- Mitchell T, Machine Learning, McGraw-Hill, 1997
- Barber D, Bayesian Reasoning and Machine Learning, 2012
- Duda, Hart and Stork, Pattern Classification, Wiley-interscience
Assessment
Two-hour examination (60%), programming assignment and class test (40%)
Teaching
30 one-hour lecture, 10 laboratory sessions