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.

**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.

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.

**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.

**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.

**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.

**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).**

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.

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

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.**

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