The tutorials of this course will be the flipped classroom model. Guides to readings and video content will be posted for each tutorial and you are expected to study them offline, and the online tutorials will mainly be Q&A. The rational behind the flipped classroom methodology is to increase student engagement with content, increase and improve TA contact time with students, and enhance learning (Rotellar et al., 2016).

For the first half of the semester (before midterm), tutorials will aim to provide a solid foundation for machine leanring. Note that calculus and the basics of probability and statistics are not covered here and assumed as prerequisite, as they are more or less required for almost any undergrad programs, and it's not feasible to include them in this already very packed schedule. Since a foundation in probability and statistics is so essential for machine leanring, here is a list of lectures that cover the foundamentals, but we won't cover them in this course and it might be a bit chanllenging to go through all of them in a short period of time.

For the second half of the semester, tutorials will try to cover the breadth of machine learning: current topics and frontiers in machine learning.

Tutorials will be held at Tuesdays 10pm and Fridays 10am EST so that it'll work for every time zone. You only need to attend one of the two each week. Tutorials will be held on Bb Collaborate on Quercus.

More tutorial materials will be posted as the course goes on. Throughout the course, meaningful Q/A's will also be reflected here, we appreciate your feedback and gradient.

Tutorial 1: NumPy review, dataset split, no free lunch, KNN.

Dates: 9/11, 9/15

NumPy Review. This tutorial gives a conceptual and practical introduction to Numpy. The code can be found here.

Dataset split. Kilian Weinberger's Cornell class CS4780 Lecture 3 starts to talk about proper dataset split at 2:00 until 24:00.

No free lunch. The same lecture touches on no free lunch theorem and algorithm choice starting at 27:10 until 33:30.

K-Nearest-Neigbors. The same lecture starts to talk about KNN at 36:00 until the end. The lecture note also has an easier to follow convergence proof for 1-NN in the middle of the page and it also has a nice demo of curse of dimensionality after that.

K-Nearest-Neigbors with Numpy. Prerecorded video going through the implementation of K-Nearest-Neigbors using Numpy. Code.

A very nice Probability Cheatsheet share by a student.

Tutorial 2: Information Theory Foundation.

Dates: 9/18, 9/22
This week we'll go through the most essential part of information theory and watch the classic lectures by David MacKay, and then learn more concepts in information theory including conditional entropy, cross entroy and KL divergence.

Information content and entropy. Video. Snapshots We encourage you to watch the whole video. If you don't have enough time, you could consider watching it at 1.5x or 2x speed.
If you have trouble following this lecture, you can also watch their first lecture.

Further understanding of entropy and source coding theorem. Video. Snapshots We encourage you to watch the whole video. If you don't have enough time, you could consider watching it at 1.5x or 2x speed.

More info theory. The concept of entropy is at the heart of information theory and also many machine leanring methods, so it is important to have a thorough understanding of it. We will see two more different ways of explaining entropy.This tutorial first explain the concept of entropy from another way, and then nicely build on that to explain the concepts of cross entropy and KL divergence. This tutorial first explain the concept of entropy from yet another way, and then talk about information gain, and in the specific formulation in this tutorial it can also be intrepreted as mutual information.

Tutorial 3: Linear Algebra Foundation.

Dates: 9/25, 9/29 This week we'll go through the most essential part of linear algebra and watch the classic lectures by Gilbert Strang. If you don't have enough time, you could consider watching it at 1.5x or 2x speed.

Eigen decomposition. Video. Transcript (The middle tab). We encourage you to watch the whole video.

Positive Definite and Semidefinite Matrices. Video. Transcript (The middle tab). We encourage you to watch the whole video.

SVD. Video. Transcript (The middle tab). We encourage you to watch the whole video.

Tutorial 4: Gradient Descent.

Dates: 10/2, 10/6 This week we will cover basic ideas in gradient descent and will watch a series of short videos by Andrew Ng. Before that we'll first learn about the concept of convexity.

Gradient Descent intro, for logistic regression. Video.

Gradient Descent on multiple samples Video.

Vectorization. Video.

Gradient Descent for NN Video.

Backprop intuition Video.

Forward and backward propagation Video.

Gradient checking. Video.

Mini batch gradient descent Video.

Understanding mini batch gradient descent Video.

Tutorial 5: Random Forests.

Dates: 10/9, 10/13 This week we'll learn more about decision trees and random forest. But before that you may want to quickly review information theory by rewatching the last two videos in tutorial 3.

Decision tree. Please watch this lecture by Nando de Freitas. Slides. If you don't have enough time, you could consider watching it at at 1.25x or 1.5x speed.

Random Forests. Please watch this lecture by Nando de Freitas. Slides. If you don't have enough time, you could consider watching it at at 1.25x or 1.5x speed.

Tutorial 6: PyTorch, Autograd, Transfer Learning

Dates: 10/16, 10/20

Pytorch. This tutorial gives an overview of pytorch and the basics on how to train neural net.

Autograd (optional). This tutorial explains how autograd works in pytorch so that you can have a general idea of the gradients are handled by pytorch. Transfer Learning with pytorch (optional).

Tutorial 7: Mid-term Review.

Dates: 10/23, 10/27

Tutorial 8: Convnets.

Dates: 10/30, 11/3 [CNNs ipynb] Tutorial videos coming soon.

Tutorial 9: Latent Variable Models (VAEs) and Implicit Models (GANs)

Dates: 11/6, 11/10

This week we will cover two major types of deep generative models: VAEs and GANs and watch some lecture excerpts from by Pieter Abbeel (et al.) 's latest deep unsupervised learning course.

VAEs. Please watch this lecture from here to 1:46:00, where the foundational ideas of VAEs are covered. Everything (Variations and related ideas) after 1:46:00 is optional. Slides. Code used in the lecture.

GANs. Please watch this lecture from here to 2:03:00, where the foundational ideas of GANs are covered. Everything (More GANs) after 2:03:00 is optional. The reason why the cut is made at WGAN-GP is that the Gradient Penalty(GP) is helpful not only for WGAN but also in almost any GAN setting. (Shown in papers 1(image), 2(waveform) and 3(text)), and it's very simple to implement, so if you are using GAN for your final project, now there's no excuse not to add GP. Slides. Code used in the lecture.

Tutorial 10: Deep Reinforcement Learning.

Dates: 11/13, 11/17

This week we'll watch this ICML 2017 Tutorial on Deep Reinforcement Learning by Sergey Levine and Chelsea Finn. This tutorial covers the basics of Deep RL. Slides

If you are interested, there

Tutorial 11: Meta Learning, Self-Supervised Learning.

Dates: 11/20, 11/24

This week we will cover more breath in machine learing.

Meta Learning. Please watch the first half of this ICML 2019 Meta-Learning Tutorial by Chelsea Finn here. The second half on meta-reinforcement learning by Sergey Levine is optional. Slides.

Self-Supervised Learning.

Please watch this lecture from here to 1:02:00, where the foundational ideas of self supervised learning in vision are covered.

Website and course still under development, any feedback is very appreciated, please reach out to: Sheldon, email: huang at cs dot toronto dot edu