Machine learning (ML) is a set of techniques that allow computers to learn from data and experience, rather than requiring humans to specify the desired behaviour manually. ML has become increasingly central both in AI as an academic field, and in industry. This course introduces the main concepts and ideas in machine learning, and provides an overview of many commonly used machine learning algorithms. It also serves as a foundation for more advanced ML courses.
By the end of this course, the students will learn about (roughly categorized)
The students are expected to learn the intuition behind many machine learning algorithms and the mathematics behind them. Through homework assignments, they will also learn how to implement these methods and use them to solve simple machine learning problems. More details can be found in syllabus (to be posted) and piazza.
Tuesdays (Lectures):
Thursdays (Divided between Tutorials and Lectures)
No required textbooks. Suggested reading will be posted after each lecture (See lectures below).
This is a tentative schedule, especially the parts related to tutorials, and it will change.
Note on videos: The videos from Fall 2021 version of this course are available at YouTube. Use them if you have to miss a class or you need to review the material. The content of this year will mostly be the same (70-90%).
Week (date) | Topics | Material | Week’s schedule | Suggested reading |
---|---|---|---|---|
1 (Sept 12-16) |
Lecture: Introduction to ML & K-Nearest Neighbours Tutorial: Probability review, Linear Algebra review, and preliminaries |
Lecture: KNN slides video - part 1 video - part 2 Tutorial: Probability review slides & Linear Algebra review slides & preliminaries |
Lec: Tue: Lec Tut: Thu |
ESL 1. ESL 2.(1-3), 2.5, 13.3 |
2 (Sept 19-23) |
Lecture: Decision Trees | DT slides video - part 1 video - part 2 |
Lec: Tue, Thu | ESL 9.2 |
3 (Sept 26-30) |
Lecture: (Continued) Decision Trees Linear Models for Regression and Classification Tutorial: Optimization and Cross-Validation |
Linear models slides video - part 1 video - part 2 video - part 3 video - part 4 Tutorials: Optimization and CV - notebook, worksheet (zip) |
Lec: Tue Tut: Thu |
ESL 3.(1,2,4), 4.(1,2,4); PRML 4.3 |
4 (Oct 3-7) |
Lecture: (Continued) Linear Models for Regression and Classification Tutorial: Gaussian distribution (read on your own) |
Gaussian distribution slides | Lec: Tue and Thu | |
5 (Oct 10-14) |
Lecture: (Continued) Linear Models for Regression and Classification Bias-Variance Decomposition and Ensembles: Bagging |
B&V slides video - part 1 video - part 2 |
Lec: Tue and Thu | ESL 7.3, 8.7, 15.1-2 |
6 (Oct 17-21) |
Lecture: (Continued) Bias-Variance Decomposition and Ensembles: Bagging Support Vector Machines & Kernel Methods & Ensembles: Boosting |
SVM, Kernels, & Boosting slides video - part 1 video - part 2 video - part 3 |
Lec: Tue and Thu | ESL 4.5.2, 12.(1-3), 10.(1-5) |
7 (Oct 24-28) |
Lecture: (Continued) SVM, Kernels, and Boosting Neural Networks |
NN slides video - part 1 video - part 2 |
Lec: Tue and Thu | notes |
8 (Oct 31 - Nov 4) |
Lecture: (Continued) Neural Network | Lec: Tue and Thu | ||
9 (Nov 14-18) |
Lecture: Probabilistic Models Tutorial: NN with PyTorch (tentative) |
Probabilisitic Models slides video - part 1 Tutorial: NN with PyTorch Colab (blank) Colab |
Lec: Tue and Thu Tut: Thu (Zoom) at 2PM |
ESL 2.6.3, 6.6.3, 4.3.0 |
10 (Nov 21-25) |
Principal Component Analysis Ethics |
PCA slides Ethics slides - Part 1 Ethics slides - Part 2 |
Lec: Tue and Thu | ESL 14.5.1 |
11 (Nov 28-Dec 2) |
Lecture: K-Means Clustering Matrix Completion |
KMeans slides | Lec: Tue, Thu | PRML 9.1-2 |
12 (Dec 5-9) |
Lecture: Reinforcement Learning Tutorial: Policy gradient (read on your own) |
RL slides Policy Gradient |
RL 3, 4.1, 4.4, 6.1-6.5 |
Note on slides: Many have contributed to the design of these slides. Credit goes to several members of the ML Group at the U of T, and beyond, including (recent past, as far as I know): Roger Grosse, Murat Erdogdu, Richard Zemel, Juan Felipe Carrasquilla, Emad Andrews, and myself.
These are the main components of the course. The details are described below. You need to use MarkUs to submit your solutions (You need UTorID)
This is a tentative schedule of the homework assignments, and the exact date change according to the progress of the course. You have two weeks after the release date to submit your solutions.
Homework # | Out | Due | Materials | TA Office Hours |
---|---|---|---|---|
Homework 1 | Sept 30 | Oct 14, 16:59 | Questions Dataset | (1) Oct 7 (Fri), 2PM at BA2270 (2) Oct 12 (Wed), 12PM (Zoom) (3) Oct 13 (Thu), 3PM (Zoom) |
Homework 2 | Oct 22 | Nov 4, 16:59 | Questions | (1) Oct 28 (Fri), 11AM-12PM at BA2270 (2) Nov 2 (Wed), 2-3PM at BA2270 |
Homework 3 | Nov 9 | Nov |
Questions Dataset | (1) Nov 14 (Mon), 3PM at BA3289 (2) Nov 18 (Fri), 11AM (Zoom) (3) Nov 23 (Wed), 11AM (Zoom) |
Read the instruction carefully!
The following papers (to be posted) are a combination of seminal papers in ML, topics that we didn’t cover in lectures, or active research areas. You need to choose five (5) papers out of them, depending on your interest. We will post the papers as the course progresses (so check here often). Please read them and try to understand them as much as possible. It is not important that you completely understand a paper or go into detail of the proofs (if there is any), but you should put some effort into it.
After reading each paper:
Note: This list only covers a tiny fraction of all great papers published in various ML venues. Many of my favourites are not included.
There are two deadlines for Reading Assignments:
Papers
The goal is to encourage you to reflect on the content of lectures. You do this by writing down two questions based on the content of the assigned lecture(s). You also need to try to answer those questions and write your answers down. The questions should be beyond what is covered in the lecture or discussed in the class. The goal is to make you think deeper about the content. You can search on the Internet to try to find answer to your questions. You do not need to answer the questions successfully or completely. It is enough to show that you have seriously thought about them. There is no strict rule about how long your submission should be, but an equivalent of 0.5-1 page should be enough. You have almost 7 days after the lecture is finished to submit the assignment: If the lecture is finished on Tuesday, you have until 5PM of Monday, and if it is finished on Thursday, you have until 5PM of Wednesday.
Some of the lectures are grouped together, and you only need to submit one QA for them. The number of questions is still two: You do not need to submit four questions if two lectures are combined.
For the homework assignments, we will use Python, and libraries such as NumPy, SciPy, and scikit-learn. You have two options:
The easiest option is probably to install everything yourself on your own machine.
If you don’t already have python, install it. We recommend using Anaconda. You can also install python directly if you know how.
conda create --name csc2515
source activate csc2515
pip install scipy numpy autograd matplotlib jupyter sklearn
All the required packages are already installed on the Teaching Labs machines.