IFT 6135 - Representation Learning

Winter 2019, A Deep Learning Course offered by the Université de Montréal

IFT6135-H19 DIRO, Université de Montréal

Course Description:

This is a course on representation learning in general and deep learning in particular. Deep learning has recently been responsible for a large number of impressive empirical gains across a wide array of applications including most dramatically in object recognition and detection in images and speech recognition.

In this course we will explore both the fundamentals and recent advances in the area of deep learning. Our focus will be on neural network-type models including convolutional neural networks and recurrent neural networks such as LSTMs. We will also review recent work on attention mechanism and efforts to incorporate memory structures into neural network models. We will also consider some of the modern neural network-base generative models such as Generative Adversarial Networks and Variational Autoencoders.

The course will use the textbook: Deep Learning by Ian Goodfellow, Yoshua Bengio and Aaron Courville (available for order at amazon or online for free here).

In particular topics covered by the course include the following:

  • Neural networks structure and training algorithms
  • Convolutional neural networks
  • Recurrent neural networks
  • Optimization methods for training neural networks
  • Regularization of neural networks
  • Normalization Methods (Batch Normalization, etc.)
  • Attention Mechanism
  • Memory Models
  • Transformer Networks
  • Meta-Learning
  • Autoencoders
  • Variational Autoencoders
  • Generative Adversarial Networks (GANs)
  • Autoregressive Generative Models
  • RBMs and DBMs (if time permits)

Instruction style: The lecture time will be devoted to traditional lectures. Students are responsible for keeping up-to-date with the course material outside of class time, mainly by reading the textbook and other readings assigned for each lecture. The material to be reviewed for each class will be made available on this course website.

Evaluation: The course will include a set of 3 assignments. Each assignment will consist of two components:

    1. A problem set of theoretical questions
    2. A practical component involving programming and running experiments.

In addition to these assignments there will be a final exam. The practical components of assignments can be done in groups of 3 or 4 students. The theoretical component of the assignments is to be done individually.

The final grade will be composed as follows:

  • Assignments: 3 * 25% = 75% (For each assignment, 25% = 10% (theory) + 15% (practical)
  • Final Exam: 25%

Assignment descriptions can be found via the Studium page for this course here (not yet open). This is also where you will hand in the assignments (by the due date).


  • Instructor: Prof. Aaron Courville
  • Teaching assistants:
    • Chin-Wei Huang (chin-wei.huang at umontreal.ca ),
    • Sai Rajeshwar (rajsai24 at gmail.com)
    • Shawn Tan (tanjings at iro.umontreal.ca)
    • Samuel Lavoie (Samuel.Lavoie.m at gmail.com)
    • Tegan Maharaj (tegan.jrm@gmail.com)
    • David Krueger (david.scott.krueger at gmail.com)
    • Salem Lahlou (salemlahlou9 at gmail.com)
    • Michael Noukhovitch (mnoukhov at gmail.com)

Class schedule

  • Mondays: 9:30 – 11:30 AM (B-0215 Pav. 3200 J.-Brillant)
  • Wednesdays: 12:30 – 2:30 PM (B-0245 Pav. 3200 J.-Brillant)

Office Hours

  • Prof: Mondays: 11:30 – 12:30 AM (B-0215 Pav. 3200 J.-Brillant - tentative)
  • TAs: (TBA) location: Pav Andre Aisenstadt 3336

Important Dates:

  • 1st Assignment Due: (TBA)
  • 2nd Assignment Due: (TBA)
  • 3rd Assignment Due: (TBA)
  • Final Exam: last day of class - 10/04/2019 (location: TBA)