The course introduces students to the design of algorithms that enable machines to "learn". In contrast to the classic paradigm where machines are programmed by specifying a set of instructions that dictate what exactly a machine should do, a new paradigm is developed whereby machines are presented with examples from which they learn what to do. This is especially useful in complex tasks such as natural language processing, information retrieval, data mining, computer vision and robotics where it is not practical for a programmer to enumerate all possible situations in order to specify suitable instructions for all situations. Instead, a machine is fed with large datasets of examples from which it automatically learns suitable rules to follow. The course will introduce the basics of machine learning and data analysis.
Formalize a task as a machine learning problem
Identify suitable algorithms to tackle different machine learning problems
Apply machine learning algorithms to datasets
Introduction
Generalization
Underfitting, overfitting
Cross-validation
Linear models
Linear regression
Classification with linear separators (mixtures of Gaussians, logistic regression, perceptron, support vector machines)
Non-linear models
Non-linear basis functions
Kernel methods
Deep neural networks
Unsupervised learning
Clustering
Sequence learning
Hidden markov models
Recurrent and recursive neural networks
Ensemble learning
Bagging
Boosting
Large scale learning
Distributed learning
Stream learning
End user issues of Machine Learning
Real-world applications of Machine Learning
Topics in Machine Learning