IFT3710/6759, Winter 2025
Projets avancés d'apprentissage automatique
Advanced Machine Learning Projects
Time
- Mardi : de 10 h 30 à 12 h 29
- Jeudi : de 10 h 30 à 12 h 29
Le lien vers les diapositives du cours sera également affiché sur Studium après le cours.
Enseignant et assistant à l'enseignement
Enseignant: Bang Liu (firstname.lastname@umontreal.ca)Assistant à l'enseignement: Kyle Roth (firstname.lastname@umontreal.ca), Jeremy Qin (firstname.midname.lastname@umontreal.ca)
Description du cours
L'objectif de ce cours est de préparer les étudiants à aborder des projets d'apprentissage machine du monde réel. Pendant le cours, les étudiants travailleront sur les principales étapes des projets d'apprentissage machine, y compris l'acquisition de données, le prétraitement des données, la formation de modèles, les expériences et l'analyse, rédigeront un rapport de projet et présenteront les résultats et les conclusions du projet. Le sujet du projet de cours peut être choisi parmi une liste de candidats fournie par le cours, ou bien il peut être proposé par les étudiants et déterminé après discussion avec l'enseignant. Les compétences développées au cours de ce cours comprennent une revue de la littérature sur un problème particulier, l'apprentissage automatique pratique et théorique, la programmation pour l'apprentissage machine et la science des données avec Python et PyTorch, le contrôle de version avec git et les commandes Linux de base.Conditions préalables
- Maîtrise en Python
Nous utiliserons principalement Python (par exemple, en utilisant NumPy et PyTorch). Si vous avez beaucoup d'expérience en programmation, mais dans un langage différent (par exemple C/C++/Matlab/Java/Javascript), tout ira probablement bien. - Calcul universitaire et algèbre linéaire
Vous devez être à l'aise avec les dérivées (multivariables) et comprendre la notation et les opérations matricielles/vecteurs. - Probabilités et statistiques de base
Vous devez connaître les bases des probabilités, des distributions gaussiennes, de la moyenne, de l'écart type, etc. - Fondements de l'apprentissage machine
Si vous avez déjà des connaissances de base en apprentissage automatique et/ou en apprentissage profond, le cours sera plus facile.
Critères d'évaluation
Les étudiants seront évalués entièrement en fonction de leur travail sur des projets. Chaque étudiant participe à un projet et travaille en équipes de 3 à 4 personnes. Vous pouvez choisir parmi une liste de projets préparés par les professeurs, ou proposer vos propres projets, à condition qu'ils répondent à certains critères. L'évaluation finale tiendra compte des éléments suivants :- Difficulté du projet
- Performances des algorithmes développés
- Présentation orale
- Rapport écrit
- Qualité du code
Plan de cours provisoire
Remarque: l'horaire provisoire est sujet à changement.| Index | Sujet |
| 1 | Introduction au cours |
| 5 | Examen de l'apprentissage automatique |
| 6 | Examen de l'apprentissage profond |
| 3 | Linux et Python pour l'apprentissage machine |
| 8 | Programmation PyTorch et Apprentissage profond |
| 2 |
Contrôle de version avec git et GitHub
|
| 4 | Clusters HPC |
| 9 | Travaux de projets, présentations d'étudiants |
Ressources
Aucun manuel requis. Mais les ressources suivantes, qui peuvent être lues gratuitement en ligne, sont utiles.- Ian Goodfellow, Yoshua Bengio, and Aaron Courville (2016). Deep Learning. MIT press.
- Abu-Mostafa, Y. S., Magdon-Ismail, M., & Lin, H. T. (2012). Learning from Data. AMLBook.
- Anish, Jose, Jon (last seen on Dec. 2021). The Missing Semester of Your CS Education. CSAIL MIT.
- Michael A. Nielsen. Neural Networks and Deep Learning
- Li Deng, Yang Liu (2018). Deep Learning in Natural Language Processing. Springer.
- PyTorch une bibliothèque d'apprentissage profond open source.
- DGL une bibliothèque open source pour l'apprentissage profond sur les graphiques.
- HuggingFace Transformers une bibliothèque open source contenant des implémentations PyTorch et Tensorflow, des poids de modèle pré-entraînés, des scripts d' utilisation et des utilitaires de conversion pour une variété de modèles linguistiques pré-entraînés.
- Aeiva aune bibliothèque open source pour construire des agents LLM.