CS480/680 Fall 2020 - Introduction to Machine Learning

Course Description:

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.

Course Objectives:

At the end of the course, students should have the ability to:

Formalize a task as a machine learning problem

Identify suitable algorithms to tackle different machine learning problems

Apply machine learning algorithms to datasets

Course Overview:

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 (convolutional neural networks, autoencoders, generative adversarial networks)

Probabilistic models

Sum-product networks

Variational auto encoders

Normalizing flows

Unsupervised learning

Clustering

Sequence learning

Hidden Markov models

Recurrent neural networks and encoder-decoder models