IFT 3395 / 6390A - Automne 2023 - Fondements de l'Apprentissage Machine
Très Important : Exceptionnellement, le premier cours aura lieu le 6 Septembre de 8:30 à 11:30 en Salle P-310 Pav. Roger-Gaudry (pas de cours le mardi 5 septembre mais il y a bien une séance de labo à 13:30)
Important :
Nous allons utiliser Piazza comme principale plateforme pour les discussions et la diffusion des ressources pédagogiques. Vous devriez recevoir un email d'invitation pour rejoindre la
page Piazza du cours sur votre adresse @umontreal.ca (celle que vous utilisez pour vous connecter à Studium). Vous devriez également recevoir un email d'invitation pour rejoindre la
page Gradescope du cours que nous utiliserons pour le rendu des devoirs maison et les quizzes.
Liens importants :
- Page Piazza du cours: pour les forums de discussions, annonces et les ressources pédagogiques pour le cours (notes de cours, suggestions de lecture, transparents, ...).
- Page Gradescope du cours: pour le rendu des devoirs maison et les quizzes.
Professeur: Guillaume Rabusseau.
Consultation: après le cours ou sur rendez-vous. Si vous avez des questions pressantes à me poser, essayez de parler directement avec moi à la fin du cours.
email: prenom.nom[at]umontreal.ca
Horaire du cours
Mardi |
12:30-13:30 |
Théorie |
P-310 Pav. Roger-Gaudry
|
Mercredi |
9:00-11:30 |
Théorie |
P-310 Pav. Roger-Gaudry (ou parfois Z-110 Pav. Claire-McNicoll ou même B-0245 Pav. 3200 J.-Brillant, vérifier sur synchro)
|
Mardi |
13:30-15:30 |
Labo (pratique) |
B-4275 Pav. 3200 J.-Brillant
|
- Premier cours: Mercredi, 6 septembre 2023, 8h30, salle P-310 Pav. Roger-Gaudry
- Quizzes:: Chaque semaine, en ligne (horaire à confirmer).
- Examen intra de programmation (6390A seulement): (date à confirmer) Mardi 31 octobre, 13:30-14:30
- Examen final: Mardi 12 décembre, 12:30-15:30, salle B-4315 Pav. 3200 J.-Brillant
Heures de permanence
G. Rabusseau |
Mercredis |
11h30 - 12h30 |
Contenu et objectifs du cours
Ce cours est une introduction aux algorithmes d'apprentissage, un champ de recherche en intelligence artificielle. Ces algorithmes ont pour objectif de permettre à la machine d'apprendre à partir d'exemples. Le focus du cours est la classification et
la régression: on observe un ensemble de paires (observation, cible) où la cible est par ex. une classe et on essaye de prédire la cible correspondant à une nouvelle observation. Les applications classiques de ces algorithmes se font dans le domaine
de reconnaissance des formes (caractères, image, parole, etc.). Dans les dernières années plusieurs nouveaux champs d'applications sont apparus: le forage des données, l'analyse statistique de données textuelles, ou la gestion quantitative de portefeuilles
financiers, l'analyse des expressions génétiques, etc. La matière du cours peut être donc exploitée dans nombreux domaines de l'informatique.
Le cours couvrira les sujets suivants: notions générales (terminologie de base, généralisation, malédiction de la dimensionnalité, capacité, comparaison des classifieurs), algorithmes supervisés (k plus proches voisins, classifieurs linéaires, réseaux
de neurones, machines à vecteur de support, arbres de décision et régression, méthodes d'ensemble), algorithmes non-supervisés (analyse en composantes principales, méthode de k-moyennes), survol des modèles graphiques probabilistes, théorie de l'apprentissage.
Évaluation
Mode d'évaluation |
Valeur IFT3395 |
Valeur IFT6390A |
|
Devoirs maison |
30% |
30% |
3 devoirs comportant des parties théoriques et de programmation et d'expérimentation. |
Compétition 1 |
10% |
10% |
Compétition Kaggle. |
Compétition 2 |
- |
20% |
Compétition Kaggle. |
Quizzes |
30% |
10% |
Chaque semaine un court quizz en ligne (~15mn). |
Examen intra de programmation |
- |
10% |
Examen de programmation au milieu du semestre. |
Examen final |
30% |
20% |
|
- Les quizzes porteront principalement sur la matière vue la semaine précédente mais certaines questions pourront porter sur toute la matière vue jusqu'à ce point.
- L'examen final portera sur toute la matière vue pendant le semestre.
- Devoirs maisons : 3 devoirs comportant des parties théoriques et des parties de programmation (10% par devoir). Le premier se fait individuellement et les devoirs suivants peuvent être faits par équipe (à confirmer)).
Travaux et examens:
Nous utiliserons la plateforme gradescope pour le dépôt des devoirs maison. Plus d'information sur l'utilisation de gradescope vous seront données lors de l'une des premières séances de démonstration.
ATTENTION
à la la fraude et au plagiat! L'Université de Montréal a une politique stricte en cas de fraude ou plagiat. Si une infraction est constatée, le professeur est tenu de faire un rapport au directeur du département. Une procédure
administrative est alors automatiquement enclenchée avec les conséquences suivantes: l'infraction est notée à votre dossier, et une sanction est décidée (qui peut être grave et aller jusqu'au renvoi en cas de récidive). Alors faites le travail vous-même!
Instructions pour les devoirs maison
Gradescope
- Vous devriez avoir reçu un e-mail d'invitation (celui que vous utilisez pour StudiuM). Sinon, attendez d'avoir accès à la page StudiuM et à Piazza et indiquez au démonstrateur votre «nom», «email» et «ID étudiant» comme indiqué sur StudiuM pour demander de vous ajouter sur Gradescope. Le but est de faciliter la notation et de donner des commentaires (afin que vous puissiez voir plus directement où vous perdez des points).
- Pour chaque devoir, vous devez déposer (i) les réponses pour la partie théorie et (ii) le rapport et le code pour la partie programmation séparément.
Partie écrite des devoirs (théorie et pratique)
- Il est recommandé d'utiliser LaTeX pour rédiger vos réponses écrites aux devoirs (en utilisant le modèle que nous fournissons). Si la soumission est manuscrite, prenez soin d'écrire lisiblement sinon des points de pénalités seront attribués.
- Suivez autant que possible les notations utilisées dans les questions / descriptions des problèmes.
Partie pratique des devoirs (code)
- Notation automatique: Il y aura des tests de codage pour une partie du composant de programmation (pour plus de détails, voir les instructions dans le devoir). Les démonstrateurs n'apporteront aucune modification au code de l'étudiant, c'est donc à l'étudiant de s'assurer que ses soumissions ne comportent aucune erreur (syntaxe, boucle infinie, indentation).
- Pour que le classement automatique fonctionne, vous devez traivailler à partir du template fourni. Ne changez pas le template principal ou la notation du code ne fonctionnera pas et vous obtiendrez 0 points (vous pouvez ajouter des fonctions supplémentaires).
- Pénalités pour les rendus en retard: TBD
Politique pour le plaggiat et la triche
Bien que les étudiants soient encouragés à discuter des stratégies de solution pour les devoirs, le travail remis doit être le leur. Les étudiants qui ont des réponses en double à n'importe quelle sous-partie de toute question du devoir ou du matériel plagié - sur la partie théorique ou pratique - recevront 0 pour tout le devoir. Il n'y aura pas d'exceptions.
Notions couvertes dans ce cours (à titre indicatif):
- Introduction et terminologie de l'apprentissage.
- Représentation des données (+rappels d'algèbre linéaire.)
- Les tâches de l'apprentissage supervisé (classification, régression) et non supervisé (estimation de densité, partitionnement, réduction de dimensionalité, ...)
- Méthodes à base d'histogramme. Malédiction de la dimensionalité. (+rappels de proba et stat)
- Méthodes à base de voisinage (plus proches voisins et fenêtres de Parzen)
- Densité Gaussienne multivariée
- Cadre général de l'apprentissage, évaluation de performance, sélection de modèle, notion de capacité. (+ rappels mathématiques log et exp)
- Principe du maximum de vraisemblance v.s. inférence Bayesienne. Classifieur de Bayes.
- Régression et classification linéaire (régression logistique, perceptron, SVM linéaire, ...)
- Classification et régression non-linéaire avec l'astuce du noyau (+ techniques d'optimisation)
- Classification et régression non-linéaire apprise: réseaux de neurones de type MLP (+ rappels de calcul de dérivées partielles)
- Si le temps le permet: architectures de réseaux de neurones plus avancées: convolutionnels, récurrents.
- Arbres de décision.
- Méthodes d'ensemble: bagging et boosting
- Apprentissage non-supervisé: réduction de dimensionalité (PCA, ...). Partitionnement (k-moyennes, ...)
- Survol des modèles graphiques probabilistes
- Théorie de l'apprentissage : dimension de Vapnik-Chervonenkis, apprentissage PAC, ...
Livres de référence pour le cours
Aucun livre n'est obligatoire pour suivre le cours. Pour approfondir la matière vous pouvez vous référer à l'un ou l'autre des ouvrages suivants :
-
Kevin P. Murphy, Machine Learning: a Probabilistic Perspective, MIT Press, 2012.
Ouvrage récent et très complet. Téléchargez le chapitre d'introduction
depuis le site de l'auteur: c'est un excellent survol de l'essentiel de la matière!
- Hastie, Tibshirani, Friedman, The Elements of Statistical Learning , 2ème édition, Springer, 2009. (Téléchargeable
depuis le site des auteurs).
Un classique (très bonne base, mais ne couvre pas les développements les plus récents). L'apprentissage machine expliqué par des statisticiens.
- Christopher Bishop, Pattern Recognition and Machine Learning , Springer,
2006.
Ouvrage avec une forte emphase sur l'approche Bayesienne et les techniques d'inférence Bayesienne.
- Larry Wasserman, All of Statistics: a consise course in statistical inference, Springer, 2004.
- Duda, Hart and Stork, Pattern Classification, Wiley-Interscience,
2000.
Nouvelle édition d'un vieux classique.