L’apprentissage automatique ou l’apprentissage par machine (Machine Learning) s'intéresse à la conception, l'analyse, l'implémentation et l’application de programmes capables de s’améliorer, au fil du temps, soit sur la base de leur propre expérience, soit à partir des données d'apprentissage. De nos jours, l’apprentissage automatique joue un rôle essentiel dans de nombreux domaines d’applications, tels que la vision par ordinateur, le traitement automatique du langage, la reconnaissance vocale, les systèmes tutoriels intelligents, la modélisation de l’usager, la robotique, la bio-informatique, les finances, le marketing, les jeux vidéos, la télédétection, etc. En fait, la plupart des programmes de l’intelligence artificielle contiennent un module d’apprentissage. Presque tous les systèmes de reconnaissances de formes sont basés sur des techniques d’apprentissage.
Il est possible de réussir le cours sans acheter le manuel de référence. Cependant, il est recommandé d'en faire l'achat car le cours en est tiré. Bien que ce livre date de quelques années déjà, c'est une excellente référence pour comprendre les bases des techniques d’apprentissage.
Le livre de référence principal est Pattern Recognition and Machine Learning de Christopher M. Bishop. Il est possible de le commander sur Amazon. Une copie est également à la bibliothèque des sciences et de génie. Pour ceux et celles qui ne rechignent pas à l'idée de lire un livre sur un écran d'ordinateur, le manuel de Bishop est disponible en format pdf .
Il y a également deux autres livres d'intérêt soient : Dive into Deep Learning de Aston Zhang et al. ainsi que Understanding Deep Learning de Simon J.C. Price. Les deux livres sont particulièrement intéressants concernant les réseaux de neurones.
Un autre très bon manuel de référence est Mathematics for Machine Learning par Deisenroth, Faisal et Ong. Je recommande tout particulièrement les chapitres 2 à 6 pour ceux et celles qui souhaitent revoir les notions de base requises pour ce cours en algèbre linéaire, probabilités et calcul différentiel et intégral. Ce manuel est également disponible gratuitement en ligne.
La méthode pédagogique employée pour une partie de ce cours diffère de celle employée pour la plus part des cours magistraux universitaires. En effet, à chaque semaine durant la première moitié de la session, vous serez invité à visionner de 60 à 90 minutes de vidéos en ligne. Il est important de visionner ces vidéos car elles couvrent environ 50% de la matière totale du cours avant l'intra. L'horaire des vidéo est donnée dans le tableau ci-bas.
Lors des séances magistrales en classe, je reverrai avec vous certains concepts mathématiques de base parfois oubliés (vous vous souvenez des probabilités conditionnelles? de la règle de Bayes? de la dérivée en chaîne?) ainsi que certaines preuves mathématiques en lien avec la matière vue dans les vidéos ainsi que des mise en contexte et des exercices pratiques et théoriques. Cette méthode pédagogique fait suite à de nombreux commentaires émis par les étudiants.es au fil des années. Cette approche pédagogique a donc pour objectif de vous aider!
Les séances magistrales devraient prendre une à deux heures par semaine. Vous serez également invités à poser des questions quant à la matière vue dans les vidéos. L'heure restante sera passée au laboratoire pour vous aider avec les travaux pratiques (autre requête formulées par les élèves des années antérieures).
Il est prévu que les notions mathématiques critiques pour bien aborder les techniques d'apprentissage seront vues en classe avant l'intra. Ainsi, après le retour de la semaine de relâche, les trois heures de cours se feront en classe via des présentations powerpoints.
| Semaine | Contenu | Sections des livres |
|---|---|---|
| Semaine 0 (à faire par soi-même au besoin) |
Mise à niveau • Tutoriel Python avec interface en ligne • Tutoriel Python approfondi • Tutoriel Python - Stanford • Dérivées • Dérivées partielles • Algèbre linéaire (sections 2.1, 2.2, 2.3.1, 2.3.4, 4.2) • Stats et prob de base (sections 6.1 à 6.5) |
Bishop: 1.2.4, 2.1, 2.3, Apprendix C |
| Semaine 1 5 janvier |
0- Presentation [pdf] [pdf] 1- Concepts fondamentaux [pdf] [pdf] Présentation 0 (2:19) Présentation 1 (20:27) Concepts fondamentaux 0 (11:12) Concepts fondamentaux 1 (18:33) Concepts fondamentaux 2 (9:52) Concepts fondamentaux 3 (8:19) Concepts fondamentaux 4 (8:07) |
Bishop:1.0, 1.1, 1.3 |
| Semaine 2 12 janvier |
2- Formulation probabiliste [pdf] [pdf]
Formulations probabilistes 0 (19:57) Formulations probabilistes 1 (23:49) Formulations probabilistes 2 (20:16) Formulations probabilistes 3 (11:38) |
Bishop:1.2, 1.2.1, 1.2.2, 1.2.4, 1.2.5, 1.6, 1.6.1 |
| Semaine 3 19 janvier |
3- Régression linéaire [pdf] [pdf]
Régression linéaire 0 (10:29) Régression linéaire 1 (16:04) Régression linéaire 2 (11:04) Régression linéaire 3 (7:11) Régression linéaire 4 (5:03) Régression linéaire 5 (5:32) |
Bishop:3.1, 3.1.1, 3.1.4, 3.1.5, 3.2 |
| Semaine 4 26 janvier |
4- Classification linéaire [pdf] [pdf] Classification linéaire 0 (7:03) Classification linéaire 1 (7:40) Classification linéaire 2 (12:05) Classification linéaire 3 (13:05) Classification linéaire 4 (37:17) |
Bishop:4.1, 4.1.2, 4.1.3, 4.1.4, 4.2, 4.3 |
| Semaine 5 2 février |
4- Classification linéaire [pdf] [pdf]
Classification linéaire 5 (39:01) Classification linéaire 6 (6:01) Classification linéaire 7 (12:01) |
Bishop:4.1, 4.1.2, 4.1.3, 4.1.4, 4.2, 4.3 |
| Semaine 6 9 février |
5- Réseaux de neurones multi-couches [pdf] [pdf]
Réseaux de neurones multicouches 0 (8:02) Réseaux de neurones multicouches 1 (17:08) Réseaux de neurones multicouches 2 (12:40) Réseaux de neurones multicouches 3 (3:35) Réseaux de neurones multicouches 4 (13:46) Réseaux de neurones multicouches 5 (11:50) |
Bishop:5.1, 5.2, 5.2.1, 5.2.4, 5.3, 5.3.1, 5.3.2, 5.5 |
| Semaine 7 16 février |
5- Réseaux de neurones multi-couches [pdf] [pdf]
Réseaux de neurones multicouches 6 (44:03) Réseaux de neurones multicouches 7 (12:53) Réseaux de neurones multicouches 8 (28:47) |
Bishop:5.1, 5.2, 5.2.1, 5.2.4, 5.3, 5.3.1, 5.3.2, 5.5 |
| Semaine 8 23 février |
Examen périodique | |
| Semaine 9 2 mars |
Semaine de lecture | |
| Semaine 10 9 mars |
6- Réseaux de neurones avancés [pdf] [pdf]
|
Price: 10.1 à 10.5.1 |
| Semaine 11 16 mars |
6- Réseaux de neurones avancés [pdf] [pdf]
|
Zhang et al.: Chapitre 9 |
| Semaine 12 23 mars |
7- Introduction aux méthodes par renforcement [pdf] [pdf]
8- Théorie de la décision [pdf] [pdf]
|
Bishop:1.5.5, 3.2 |
| Semaine 13 30 mars |
9- Méthodes à noyau et SVM [pdf] [pdf] | Bishop:6.1, 6.2, 7.0, 7.1, 7.1.1, 7.1.2 |
| Semaine 14 6 avril |
10- Combinaison de modèles [pdf] [pdf] | Bishop:14.0, 14.2, 14.3, 14.3.1 |
Voici quelques exemples de code sous forme de notebooks python dont le but est de vous aider à comprendre certains éléments de la matière vue en classe:
Veuillez utiliser turninweb pour soumettre vos travaux. Tout retard ou erreur de remise entraînera une pénalité de 10% par jour et une note de 0 après 5 jours. Veuillez également utiliser la plateforme de développement "gitlab" de l'Université.
Pour connaître vos partenaires d'équipes, veuillez consulter le document que voici.
| TP / Projet | Description | Ressources |
|---|---|---|
| Setup | Aide à la mise sur pied d'un environnement virtuel python sous Linux | requirements.txt bashrc.txt |
| Tp1 | Description (remise : 30 janvier) | code bareme sondage |
| Tp2 | Description (remise : 20 février) | code bareme sondage |
| Tp3 | Description (remise : 13 mars) | code bareme sondage |
| Tp4 | Description (remise : 17 avril) | Aucun code bareme sondage |
| Le softmax et son gradient : kit de survie! | ||
| Projet-ift712 | Voir plan de cours (remise : 17 avril) | sondage |