-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy path01-introduction.tex
17 lines (9 loc) · 3.51 KB
/
01-introduction.tex
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
\chapter*{Introduction}
Ce compte-rendu présente le Projet Long Supélec \textit{Dessine-moi un mouton}, mené par 8 élèves de Supélec - séparés en deux équipes de 4, Couleuvre et Salamandre - et encadré par deux enseignants-chercheurs du Laboratoire de Recherche Informatique, Monsieur Arpad Rimmel et Madame Joanna Tomasik. Plus particulièrement, c'est le travail de l'équipe \textbf{Couleuvre} qui est rapporté ici.
L'objectif de ce projet était d'étudier les réseaux de neurones et de les utiliser pour générer des images de synthèses. L'étude des réseaux de neurones comportait une dimension de recherche afin d'appréhender la théorie de ces objets, et une dimension de développement et de programmation dans l'implémentation de ces réseaux et leur utilisation. Le projet s'est donc naturellement décomposé en plusieurs étapes.
Dans un premier temps, il a fallu étudier le fonctionnement des réseaux de neurones, et établir les équations régissant le comportement des réseaux de type perceptron. Puis nous avons implémenté un perceptron afin de résoudre un problème de décision simple au début (\textbf{XOR}), puis plus complexe (application à la base de données de chiffres manuscrits MNIST).
Dans un second temps, nous avons commencé à utiliser la structure qui représentait le coeur du projet : les réseaux semi-supervisés en compétition mutuelle, selon la méthode du \textbf{Generative Adversarial Network}. Nous l'avons d'abord appliqué à la génération d'images synthétiques de chiffres, puis nous l'avons utilisé pour faire de la synthèse d'images plus complexes, comme des images de moutons.
Afin de mener à bien ce projet long, il a été nécessaire de mettre en place plusieurs outils de gestion de projet. Nous avons créé une organisation \textbf{Github} (https://github.com/supelec-GAN) afin de faciliter le partage du code; nous avons utilisé \textbf{Trello} pour s'organiser en tâches et optimiser le travail; une bibliographie commune a été mise en place grâce à \textbf{Zotero}; la documentation du projet a été faite avec \textbf{Doxygen}; enfin, une réunion hebdomadaire réunissant les deux équipes et les enseignants a été imposée, permettant de rendre compte des avancées, de recevoir les directives sur le travail à effectuer, et de manger du chocolat.
Enfin, nous avons choisi le langage C++ pour ce projet. En effet, la structure de réseaux de neurones et de computational graphs (qui sera détaillée plus loin) s'accorde naturellement avec la représentation objet; de plus les réseaux de neurones nécessitent par définition de mener des calculs en grandes quantités. La rapidité de calcul du C++ (héritée du C) ainsi que son approche objet robuste et particulièrement puissante en faisaient le candidat idéal. De plus, un seul membre du groupe n'était pas familier avec le C++ et a dû apprendre en cours de route. \textbf{Nous déconseillons vivement aux futurs membres de ce projet long d'utiliser un langage qui ne soit pas maîtrisé par au moins la moitié de l'équipe}.
Nous avons de plus pu présenter les résultats de nos expériences sur le GAN au $CS^2$, le Colloque Scientifique de CentraleSupélec, le 9 avril 2018 (voir \cite{c2s}). Nous avons rencontré et discuté avec Yann LeCun des avancées sur le GAN à l'occasion d'une de ses conférences à la Bibliothèque Nationale de France, et rencontré un membre du Laboratoire de Signaux et Systèmes de CentraleSupélec, Giuseppe Valenzise, pour discuter de l'évaluation de la qualité d'image.
\newpage