IFT 6135 - Representation Learning

Course Lectures

14 – Meta-Learning - Hugo Larochelle (11/04/2022)

FLIPPED CLASS -- PLEASE VIEW THE VIDEO BEFORE CLASS

A lot of the recent progress on many AI tasks was enable in part by the availability of large quantities of labeled data. Yet, humans are able to learn concepts from as little as a handful of examples. Meta-learning is a very promising framework for addressing the problem of generalizing from small amounts of data, known as few-shot learning. In meta-learning, our model is itself a learning algorithm: it takes as input a training set and outputs a classifier. For few-shot learning, it is (meta-)trained directly to produce classifiers with good generalization performance for problems with very little labeled data. In this talk, Hugo present an overview of the recent research that has made exciting progress on this topic (including my own) and, if time permits, will discuss the challenges as well as research opportunities that remain.

Video: Hugo's Lecture (from two years ago course) and the in-class discussion

Slides: Meta-Learning slides

13 – Self-Supervised Learning (30/03/2022-06/04/2022)

In this lecture, we will discuss self-supervised learning. We will discuss how to create representation beyond the supervised pre-training paradigm, and we are going to see how effective pretext tasks can be designed and how to train with contrastive objectives.

Slides:

Video of SSL lecture I. (30/03/2022)
Video of SSL lecture II. (04/04/2022)
Video of SSL lecture III. (06/04/2022)


Reference:

12 – GANs (23/03/2022-30/03/2022)

In this lecture, we will discuss Generative Adversarial Networks (GANs). GANs are a recent and very popular generative model paradigm. We will discuss the GAN formalism, some theory and practical considerations.

Slides:

Video of part I of GANs lecture. (23/03/2022)
Video of part II of GANs lecture. (28/03/2022)
Video of part III of GANs lecture. (30/03/2022 , just finishing up)

Reference: (* = you are responsible for this material)

11 – Variational Autoencoders (16/03/2022-21/03/2022)

In this lecture, we will discuss a family of latent variable models known as the Variational Autoencoders (VAE). We’ll see how a deep latent gaussian model can be seen as an autoencoder via amortized variational inference, and how such an autoencoder can be used as a generative model. At the end, we’ll take a look at variants of VAE and different ways to improve inference.

Slides:

Video of lecture I of Variational Autoencoders (16/03/2022).
Video of lecture II of Variational Autoencoders (21/03/2022).

Reference: (* = you are responsible for this material)


10 – Normalizing Flows (14/03/2022)

In this lecture, we will have a crash course on Normalizing Flows, and see how they can be used as a generative model by inverting the transformation of the data distribution into a prior distribution.

Slides: Normalizing Flows

Video of Normalizing Flows lecture.

Reference: (* = you are responsible for this material)

09 – Autoencoders and Autoregressive Generative Models (07/03/2022-09/03/2022)

In this lecture we will take a closer look at a form of neural network known as an Autoencoder. We will also begin our look at generative models with Autoregressive Models.

Slides:

Video of lecture 1 (07/03/2022).

Video of lecture 2 (09/03/2022).

Reference: (* = you are responsible for this material)

08 – Regularization (21/02/2022-23/02/2022)

In this lecture, we will have a rather detailed discussion of regularization methods and their interpretation.

Slides:

Video of part I of this lecture (21/02/2022)

Video of part II of this lecture (23/02/2022) - I lost connection early on, but it should all be there.

Reference: (* = you are responsible for this material)

07 – Self-Attention and Transformer (14/02/2022-16/02/2022)

In this talk Arian Hosseini will look at self-attention and the transformer model. We will see how they work, dig deep into them, see analysis and performances, and their applications mainly in natural language processing. We will see how some language models, based on transformer architecture, have surpassed human performance on some language understanding tasks, and we will also discuss their shortcomings.

Slides:

Video of lecture 1, part I (14/02/2022), chat (video ends abruptly due to technical issues)

Video of lecture 1, part 2 (14/02/2022)

Video of lecture 2 (16/02/2022)


Reference:

06 – Optimization and Normalization Methods (09/02/2022)

In this lecture, we will discussion both popular and practical first-order optimization methods. We will not discuss but I do provide slides for some second-order methods and their interpretation.

Slides:

Video of this lecture (09/02/2022)
Video of the normalization methods (21/02/2022)

Reference: (* = you are responsible for this material)

05 – Sequential Models (02/02/2022, 07/02/2022, 09/02/2022)

In this lecture we introduce Recurrent Neural Networks and related models.

Lecture on RNNs (slides derived from Hugo Larochelle)

Video of lecture 1 (02/02/2022)
Video of lecture 2 (07/02/2022)
Video of lecture 3 (09/02/2022)

Reference: (* = you are responsible for this material)

04 – PyTorch Tutorial (26/01/2022)

This lecture is an introductory tutorial on PyTorch by Ankit Vani. You are encouraged to follow along on Colab.

A Colab notebook for the tutorial can be found at the following link:

https://colab.research.google.com/drive/1Yt5Oyujw-l_F1EI96BiUL55490VPAdJG?usp=sharing

Video of Pytorch tutorial.

We will cover

  • the torch.Tensor class, and important attributes and operations

  • automatic differentiation in pytorch

  • torch.nn and torch.optim modules

  • training MLPs and ConvNets on MNIST


03 – ConvNets (19/01/2022, 24/01/2022, 31/01/2022, 02/02/2022)

In this lecture we finish up our discussion of training neural networks and we introduce Convolutional Neural Networks.

Lecture 03 CNNs (some slides are modified from Hugo Larochelle’s course notes)

Backprop in CNNs (Slides are from Hiroshi Kuwajima’s Memo on Backpropagation in Convolutional Neural Networks.) -- I won't go over these in class, but they are required reading and you are responsible for it. (could be on assignments and exam)

Video of lecture 1 (19/01/2022)

Video of lecture 2 (24/01/2022)

Video of Lecture 3 (31/01/2022)

Video of Lecture 4 (02/02/2022)

Reference: (* = you are responsible for all of this material)

02 – Training NNets & ML Problems (12/01/2022, 17/01/2022, 19/01/2022)

In these lecture(s) we continue with our introduction to neural networks and we will discuss how to train neural networks: i.e. the Backpropagation Algorithm

Lecture 02 training NNs (slides modified from Hugo Larochelle’s course notes)

Machine learning problems (Delayed: slides from Hugo Larochelle's CIFAR DLSS 2019 lectures)

Video (part 1 and part 2) of lecture 1. (12/01/2022)

Video of lecture 2. (17/01/2022)

Video of lecture 3. (19/01/2022)

Reference: (you are responsible for all of this material)

  • Chapter 6 of the Deep Learning textbook (by Ian Goodfellow, Yoshua Bengio and Aaron Courville).

01 – Introduction to Neural Networks (10/01/2022)

We discuss the plan for the course and the pedagogical method chosen. In this lecture we will also begin our detailed introduction to Neural Networks.

Lecture 01 artificial neurons (slides from Hugo Larochelle’s course notes)

Video of the lecture

Reference: (you are responsible for all of this material)

  • Chapter 6 of the Deep Learning textbook (by Ian Goodfellow, Yoshua Bengio and Aaron Courville).

00 – Review / Background Material (10/01/2022, mainly on your own)

The first class is January 10th, 2022. Review of some foundational material, covering linear algebra, calculus, and the basics of machine learning.

Lecture 00 slides (slides built on Hugo Larochelle’s slides)

Reference:

  • Chapters 1-5 of the Deep Learning textbook (by Ian Goodfellow, Yoshua Bengio and Aaron Courville).