IFT 3710/6759 H23 - Projets

Le principal objectif d’apprentissage de ce cours est de préparer les étudiant·e·s à s’attaquer à des projets pratiques d’apprentissage automatique. Par conséquent, toutes et tous les étudiant·e·s participeront en équipe au développement d’un projet d’apprentissage automatique. Cette page décrit les directives générales concernant cette partie du cours.

Informations générales

Les projets du cours ont pour but de ressembler autant que possible aux projets d’apprentissage automatique du monde réel, que ce soit dans l’industrie ou dans la recherche. Les projets comprennent les étapes suivantes :

  1. Revue de la littérature
  2. Planification
  3. Développement
  4. Analyse des résultats
  5. Rapport écrit
  6. Présentation orale

Chronologie

Les quatre premières semaines du cours sont consacrées à l’introduction du cours, à la révision des aspects fondamentaux de l’apprentissage automatique et de l’apprentissage profond, ainsi qu’aux outils importants pour la réalisation de projets d’apprentissage automatique, tels que Linux, git et PyTorch. Ensuite, vous devrez travailler sur le projet assigné de la semaine 5 à la semaine 14. Comme résultat final du projet, vous préparerez un rapport technique court (~8–10 pages) et une présentation orale à donner devant les instructeur·rice·s et les autres étudiant·e·s. Au cours de l’élaboration du projet, il y aura des étapes intermédiaires et des livrables pour faciliter la progression. Le calendrier spécifique est le suivant :

  • Semaine 4, 30 janvier 2023–3 février 2023 : revue des projets proposés, expression des préférences de projet et proposition de projets propres.
  • Semaine 5, 6 février 2023–10 février 2023 : attribution des projets, formation des équipes, première réunion avec les instructeur·rice·s.
    • A la fin de la semaine, toutes les équipes doivent être formées et enregistrées, chaque étudiant·e doit faire partie d’une équipe.
    • Devoir 1 (10 février 2023) : enregistrement de l’équipe : titre de travail et membres.
  • Semaine 6, 13 février 2023–17 février 2023 : planification du projet, revue de la littérature.
    • Devoir 2 (17 février 2023) : plan du projet : une page contenant une brève description du projet, les étapes prévues, les objectifs et la répartition provisoire du travail entre les membres de l’équipe.
  • Semaine 7, 20 février 2023–24 février 2023 : revue de la littérature, premières étapes.
    • Devoir 3 (24 février 2023) : revue de la littérature : une page contenant une revue de la littérature pertinente et connexe.
  • Semaine 8, 27 février 2023–3 mars 2023 : pause (période d’activités libres)
  • Semaines 9–10, 6 mars 2023–17 mars 2023 : développement du projet (phase 1)
    • Devoir 4 (17 mars 2023) : méthodes et résultats préliminaires : une page contenant une description des méthodes développées et prévues, les changements pertinents par rapport au plan initial, et les résultats préliminaires et/ou les défis.
  • Semaines 11–12, 20 mars 2023–31 mars 2023 : développement du projet (phase 2) et préparation des présentations
    • Devoir 5 (31 mars 2023) : résultats, conclusions : rapport préliminaire des résultats et des conclusions (deux pages).
  • Semaine 13, 3 avril 2023–6 avril 2023 : présentations.
    • Devoir 6 (5 avril 2023) : présentations en classe.
  • 7 avril 2023–10 avril 2023 : congé pascal.
  • Semaines 14–16, 11 avril 2023–28 avril 2023 : préparation des rapports finaux.
    • Devoir 7 (28 avril 2023) : rapport final.

Attribution des projets

Les projets seront développés en équipes de 3–5 étudiant·e·s. Un ensemble de projets sera proposé par les instructeur·rice·s, et vous êtes également invités à proposer vos propres projets (voir ci-dessous). À un moment donné au cours des semaines d’introduction, il vous sera demandé de former des équipes et de donner vos préférences sur les projets proposés ou de proposer les vôtres, afin de répartir au mieux les projets disponibles entre toutes les équipes. Certains projets peuvent être plus faciles que d’autres, ce qui sera pris en compte dans l’évaluation.

Proposition de projet

Afin d’encourager la créativité et de vous permettre de travailler sur des projets qui vous intéressent, vous êtes invités à proposer vos propres projets. Néanmoins, la proposition de projet doit être acceptée par les instructeur·rice·s et la décision sera basée sur les critères suivants :

  • Le projet doit impliquer l’utilisation de méthodes avancées d’apprentissage automatique.
  • Les travaux développés avant ce cours ne seront pas acceptés.
  • Il doit être réalisable en termes de ressources informatiques et de contraintes de temps.
  • Les données doivent être accessibles au public.
  • Le projet ne doit pas soulever de considérations éthiques majeures.
  • Les projets qui s’attaquent à des problèmes du monde réel avec un impact potentiellement positif seront favorisés.

Évaluation

Les étudiant·e·s seront évalués entièrement en fonction de leur travail sur les projets et la note finale sera basée sur les critères suivants, tous de poids équivalent :

  • Difficulté du projet
  • Qualité et performance des algorithmes développés : adéquation des méthodes choisies, rigueur technique, résultats, etc.
  • Rapport écrit : exhaustivité, clarté, solidité technique, analyse, etc.
  • Présentation orale : efficacité, clarté de la présentation, etc.
  • Code : clarté, documentation, modularité, extensibilité, etc.

L’évaluation se fera au niveau du projet, c’est-à-dire que nous considérerons que les résultats, le rapport, la présentation et le code sont le fruit du travail de toute l’équipe. Des instructions détaillées concernant les présentations, les rapports et le code sont disponibles (an anglais pour l’instant) ici. Néanmoins, les notes peuvent être ajustées individuellement si nécessaire en cas de déséquilibre de participation (voir ci-dessous).

Notes importantes :

  • Les critères d’évaluation seront légèrement assouplis pour les étudiant·e·s du premier cycle (IFT 3710).
  • La note sera binaire (réussite ou échec), et non dans une échelle de lettres.

Travail d’équipe

Le travail d’équipe est une caractéristique essentielle des projets d’apprentissage automatique, et des projets d’ingénierie en général, tant dans la recherche que dans l’industrie. Par conséquent, il est obligatoire dans ce cours de travailler sur les projets en groupes d’au moins trois étudiant·e·s. Nous recommandons de former des équipes de cinq personnes au maximum, mais des équipes légèrement plus grandes peuvent être autorisées en fonction de la difficulté et des caractéristiques du projet.

Le travail en équipe ne signifie pas nécessairement que chaque personne contribue de manière égale à chaque partie du projet. Il appartient à chaque équipe de concevoir la répartition de la charge de travail qui lui convient le mieux. Cependant, nous attendons de chaque étudiant·e de s’engager dans toutes les étapes du projet (analyse documentaire, conception, codage, analyse, rédaction, présentation, etc.)

Afin d’encourager les équipes efficaces, d’atténuer les déséquilibres et d’assurer un certain degré d’équité dans l’évaluation, nous adopterons plusieurs mécanismes, qui incluent :

  • Les étudiant·e·s sont libres de s’organiser et de proposer des équipes pour travailler sur des projets spécifiques.
  • Sinon, les équipes seront formées en fonction des préférences fournies par les étudiant·e·s.
  • Pendant le développement des projets, nous effectuerons plusieurs réunions par équipe avec l’un des instructeur·rice·s, afin d’évaluer non seulement l’avancement du projet, mais aussi le fonctionnement de l’équipe.
  • A la fin du projet, chaque membre de l’équipe aura l’occasion de remplir un questionnaire sur le fonctionnement de l’équipe et les contributions à chaque étape du projet.

Communication

Pendant la phase de développement du projet, nous faciliterons une session hebdomadaire (en ligne, ou en personne) de chaque équipe avec l’un·e des instructeur·rice·s (instructeur principal ou un·e assistant·e d’enseignement). L’objectif de ces réunions est de contrôler l’avancement du projet, le bon fonctionnement de l’équipe et de vous donner l’occasion de poser des questions et d’obtenir un feedback. Pour la communication quotidienne, vous êtes invités à participer à un serveur Discord mis en place pour ce cours. Veuillez m’envoyer un e-mail (alejandro.hernandez.garcia@umontreal.ca) si vous n’avez pas accès au groupe Discord. Vous êtes également invités à créer un canal pour votre équipe dans ce serveur Discord, ou à utiliser un autre moyen de communication de votre choix.

Enfin, n’hésitez pas à contacter les instructeur·rice·s en cas de problème. Nous sommes là pour vous aider !

Attentes et publication potentielle

L’objectif de ce cours est l’apprentissage. C’est-à-dire que vous devrez travailler sur un problème où l’apprentissage automatique peut être appliqué, effectuer une analyse documentaire, analyser vos résultats, rédiger un rapport et le présenter à la classe. En faisant tout cela, vous serez certainement mieux préparé à la fin du processus pour vous attaquer à d’autres projets d’apprentissage automatique dans le monde réel. Faire tout cela d’une manière saine vous garantira aussi certainement une note élevée. Nous n’attendons certainement pas de vous que vous produisiez un document de recherche prêt à être publié. Néanmoins, si vous êtes intéressé par une carrière de chercheur ou par la publication de votre travail pour toute autre raison, notez que ce type de projet ressemble dans une large mesure à un projet de recherche qui pourrait aboutir à une publication si le résultat peut intéresser une communauté de chercheurs. Notez que cela nécessiterait probablement un travail supplémentaire après la fin du cours. Si la publication de votre travail est quelque chose que vous souhaitez envisager, n’hésitez pas à en discuter avec les instructeurs pour obtenir un retour à tout moment du projet.

Projets proposés

Comme expliqué ci-dessus, vous pouvez proposer votre propre projet ou travailler sur l’un des projets proposés par les instructeurs. Voici une liste tentative des projets proposés par les instructeurs et des détails supplémentaires (an anglais pour l’instant) peuvent être trouvés dans la page de chaque projet (en cliquant sur les titres) :