IFT6759, Winter 2023

Advanced Machine Learning Projects

Projets (Avancés) en Apprentissage Automatique



Time and Place

  • Wednesdays: 4:30 pm - 6:30 pm
  • Fridays: 9:30 am - 11:30 am
Please check the Studium platform for the link to Zoom and Slack workspace of this course.
Note that the lectures will be recorded. The link to each recorded lecture will also be posted on Studium after class.

Instructor and Teaching Assistant

Instructor: Bang Liu (firstname.lastname@umontreal.ca)
Teaching Assistant: Suyuchen Wang (firstname.lastname@umontreal.ca), Kyle Roth (firstname.lastname@umontreal.ca)

Course description

The objective of this course is to prepare the students for tackling real-world machine learning projects. During the course, students will work on the main stages of machine learning projects, including data acquisition, data pre-processing, model training, experiments and analysis, complete a project report, and present the results and conclsions from the project. The topic of the course project can be selected from a candidate list provided by the course, or it can be proposed by the students and determined after discussion with the teacher. Skills developed during this course include literature review of a particular problem, practical and theoretical machine learning, programming for machine learning and data science with Python and PyTorch, version control with git, and basic Linux commands.

Prerequisites

  • Proficiency in Python
    We will mainly use Python (e.g., using NumPy and PyTorch). If you have a lot of programming experience but in a different language (e.g. C/C++/Matlab/Java/Javascript), you will probably be fine.
  • College Calculus, Linear Algebra
    You should be comfortable taking (multivariable) derivatives and understanding matrix/vector notation and operations.
  • Basic Probability and Statistics
    You should know the basics of probabilities, gaussian distributions, mean, standard deviation, etc.
  • Foundations of Machine Learning
    If you already have basic machine learning and/or deep learning knowledge, the course will be easier.

Evaluation criteria

Students will be evaluated entirely according to their work on projects. Each student take part in one project and work in teams of 3–4 people. You can choose from a list of projects prepared by the instructors, or propose your own projects, provided they meet certain criteria. The final evaluation will take the following into account:
  • Difficulty of the project
  • Performance of the developed algorithms
  • Oral presentation
  • Written report
  • Quality of the code
The grade will be binary (pass or fail), not in a letter scale.

Tentative Course Outline

Note: tentative schedule is subject to change.
Index Topic
1 Introduction to the course
5 Machine learning review
6 Deep learning review
2 Version control with git and GitHub
3 Linux and Python for machine learning
4 HPC clusters
8 Advanced PyTorch tutorial
9 Projects work, student presentations


Resources

No textbook is required. But the following resources that can be read free online are helpful. The following book is helpful to give you more background about neural networks and natural language processing. The following book is helpful to give you more background about natural language processing if your project is related to this domain. The following software or libraries can be helpful.
  • PyTorch an open-source deep learning library.
  • DGL an open-source library for deep learning on graphs.
  • HuggingFace Transformers an open-source library containing PyTorch and Tensorflow implementations, pre-trained model weights, usage scripts and conversion utilities for a variety of pre-trained language models.

Acknowledge

The last version of this course created by Dr. Alex Hernandez-Garcia is of great help to our course. Specifically, the course website is very inspiring. Our course design is based on the materials from the course website: IFT 3710/6759 - Projets (avancés) en apprentissage automatique (H22, Instructor: Alex Hernandez-Garcia)