IFT-780 - Réseaux neuronaux


Objectifs du cours

Apprentissage supervisé par réseaux de neurones : classification et régression avec réseaux à propagation avant et prédiction de cibles. Réseaux de neurones classiques : perceptron multi-couches et régression logistique. Réseaux à convolution et architectures profondes ("deep learning") modernes : VGG, InceptionNet, ResNet, UNet, etc. Applications à l'imagerie : reconnaissance, segmentation, localisation, transfert de style, etc. Réseaux de neurones récurrents et applications à l'analyse de texte et d'images. Modèles génératifs adversaires et réseaux de neurones non-supervisés : auto-encodeurs et auto-encodeurs variationnels. Bonnes pratiques : transfert d'entrainement, augmentation de données, normalisation, méthodes d'entrainement modernes, visualisation. Concepts avancés: modèles d'attention, autoML, compression, convolution dilatées.


Manuel

Il est possible de réussir le cours sans acheter un manuel de référence. Cependant, il peut être avantageux d'en faire l'achat car le cours s'appuie en bonne partie sur deux livres à savoir : Deep learning de Goodfellow, Bengio et Courville ainsi que Pattern Recognition and Machine Learning de Christopher Bishop. Il est possible de les commander sur Amazon. Des copies sont également disponibles à la bibliothèque des sciences et de génie.

Pour ces et celles qui ne rechignent pas à l'idée de lire un livre sur un écran d'ordinateur, ceux deux manuels sont disponibles en format pdf: ici et et ici.


Méthode pédagogique

La méthode pédagogique pour ce cours est similaire à celle des autres cours au cycles supérieurs. Ainsi, à chaque semaine sera dispensée une séance magistrale de 3 heures. Par contre, à quelques reprises, nous passerons 1 à 2 heures au laboratoire afin de se familiariser avec le code informatique des travaux pratiques. De plus, dans les 2 ou 3 dernières semaines de la session, les séances magistrales seront remplacées par des présentations orales étudiantes.

Il est à noter que ce cours est à l'intention des élèves ayant des bases solides en techniques d'apprentissage comme le cours IFT603-712 ainsi qu'en programmation python. Si vous n'avez jamais suivi un tel cours, il est fortement suggéré de vous y inscrire.


Notes de cours

Semaine Contenu Sections
des livres
Thème 0 Mise à niveau
 • Tutoriel Python avec interface en ligne
 • Tutoriel Python approfondi
 • Tutoriel Python - Stanford
 • Cours IFT712 sur les techniques d'apprentissage

Presentation [pdf] [pdf]
Thème 1 Concepts de base (rappel du cours IFT712-603 et un peu plus) [pdf] [pdf]

Bishop :6.1,6.2,6.3,6.5
Thème 2 Réseaux à convolution [pdf] [pdf] Goodfellow : 9.0 à 9.5
Thème 3 Réseaux à convolution avancés et architectures convolutives modernes [pdf] [pdf]

Voir articles associés.
Thème 4 Segmentation et localisation [pdf] [pdf] Voir articles associés
Thème 5 Réseaux récurrents et transformeurs [pdf] [pdf]

Goodfellow : 10.1, 10.2, 10.3, 10.10
Thème 6 Autoencodeurs et modèles génératifs adversaires [pdf] [pdf]

Goodfellow : 14.1 à 14.5, 20.10.3, 20.10.4
Thème 8 Visualisation [pdf] [pdf]
T-SNE [ pdf ] + TSNE Video (41:00)
Voir articles associés.
Thème 9 Réseaux de neurones par graph [pdf] [pdf] Voir articles associés.


Présentations orales voir le plan de cours et le document que voici pour plus de détails dont les critères d'évaluation. La date limite pour soumettre le sujet de votre présentation est le 16 février 2024. Aussi, la date limite pour soumettre votre présentation est le 25 mars 2024
Les présentations orales 2024 sont disponibles ici


Travaux Pratiques

Veuillez utiliser turninweb pour soumettre vos travaux. Tout retard ou erreur de remise entraînera une pénalité de 10 points par jour et entraîner une note de 0 après 5 jours de retard.
Veuillez également utiliser la plateforme de développement "gitlab" de l'Université. Pour ce faire, connectez-vous une première fois à depot.dinf.usherbrooke.ca et 12 heures plus tard vous pourrez commencer à travailler. Si vous ne pouvez créer de projet (12 heures après vous être connecté la première fois), merci d'envoyer un courriel à l'administrateur système Daniel-Junior Dubé afin qu'il vous aide.

Pour connaître vos partenaires d'équipes, veuillez consulter le document que voici.

NOTE IMPORTANTE 1 : En plus de vos documents de travail, vous devez soumettre un fichier "gitlab.txt" dans lequel vous donnez le lien vers votre dépôt gitlab.
.
NOTE IMPORTANTE 2 : En plus de vos documents de travail, vous devez remplir, signer et joindre à votre travail le formulaire d'intégrité que voici : formulaire d'intégrité.
NOTE IMPORTANTE 3 : En plus de vos documents de travail, vous devez remplir et joindre à votre travail l'agenda d'équipe que voici : agenda d'équipe
NOTE IMPORTANTE 4 : veuillez bien utiliser git car une mauvaise utilisation pourrait entraîner une perte de points .

Setup Aide à la mise sur pied d'un environnement virtuel python sous Linux requirements.txt
bashrc.txt
Tp1 Description (remise : 9 février) code
Softmax et gradient : kit de survie!
Tp2 Description (remise : 8 mars) code
Tp3 Description (remise : 22 mars code
Fichier à copier dans le répertoire weights/
Formulaire réponses
Tp4 Description (remise : 15 avril) code
Données à copier dans le répertoire data/
Model préentraîné, à copier dans le répertoire src/
Sommaire
Session
Hiver 2024

Professeur
Pierre-Marc Jodoin

Correctrice
Hakima Laribi Disponible de 9h30 à 11h30.

Périodes de cours
Lundi de 14h30 à 15h20
Mardi de 10h30 à 12h20

Local
D3-2035

Période de disponibilités
Du lundi au vendredi de 9h30 à 17h30

Horaire et plan de cours
(plan ift780)

Created by Pierre-Marc Jodoin