Mathématiques | Informatique
Mathéo Beney, 2003 | Ollon, VD
Le but de ce travail du Concours national de Science et jeunesse est de comprendre comment l’intelligence artificielle (IA), plus précisément les réseaux de neurones, fonctionne et de réaliser des projets pour mettre en œuvre les connaissances acquises. Pour ce faire, nous commençons par présenter une partie théorique sur le fonctionnement des réseaux et leur entrainement. Une fois les bases posées, nous avons développé une série de programmes qui présentent tous leurs difficultés et leurs défis en matière d’IA. Nous avons réalisé les projets suivants : un réseau qui joue à Flappy Bird et un à Snake, un de classification d’images, un de colorisation d’image, un de différenciation d’arrière-plan, un d’extraction du style d’une image pour l’appliquer à une autre et un de génération de visages. Cette partie pratique nous a permis de tester différentes techniques d’IA que ce soit en termes de méthode d’entrainement, de structure de réseau, de fonctionnalités d’IA en programmation ou encore de problèmes de classification et d’ensemble d’apprentissage. Les objectifs du travail ont été atteints dans les temps impartis, mais de nombreuses interrogations ont surgi et demanderaient un travail supplémentaire d’approfondissement.
Problématique
L’objectif de ce travail est d’utiliser différents projets en intelligence artificielle pour comprendre son fonctionnement et ses limites dans une démarche d’apprentissage autodidacte.
Méthodologie
Pour faire ces projets, nous avons utilisé le langage de programmation python et la librairie Pytorch. Pour avoir un aperçu des principes généraux de l’IA, nous avons réalisé un total de 7 projets : un réseau qui joue à Flappy Bird utilisant un algorithme d’évolution, un qui joue à Snake utilisant du deep Q-learning, un projet de classification d’image, un de colorisation, un de segmentation d’image en 2 classes (humain et arrière-plan), un de transfert de style et, pour finir, un réseau capable de générer des visages humains en utilisant un processus d’entrainement nommé GAN. Ils permettent de découvrir différents types de couche : linéaires, de convolution et de convolution transposé, et du maxpool et averagepool.
Résultats
Toutes les IAs développées durant ce travail, nous ont permis d’obtenir des performances concluantes. Le réseau entraîné pour Flappy Bird permet à l’oiseau de vivre indéfiniment. Pour le projet Snake, les performances du réseau sont comparables à celles d’un humain avec un score moyen de 45 pommes mangées par partie. Le projet de classification obtient un résultat final au-dessus des 80% de précision avec 10 classes, et au-dessus des 65% avec 100 classes. La colorisation de visage a été la moins convaincante. Celle-ci fonctionne bien sur des images centrées et de bonnes qualités, sans cela, les résultats se détériorent assez vite. La segmentation d’image quant à elle fonctionne très bien, même quand le contenu des images n’est pas centré. Ce réseau a néanmoins quelques problèmes avec les cheveux qu’il peine parfois à détourner. Pour sa part, le transfert de style fonctionne très bien, le style d’artistes connus tels que Van Gogh ou Picasso sont facilement reconnaissables sur l’image résultante. Enfin, le réseau de création de visage a été entraîné 2 fois : une fois en couleur et une fois en tons de gris. Nous avons pu observer que le réseau en tons de gris est plus réaliste et précis que celui en couleur.
Discussion
Même si les résultats de chaque projet sont satisfaisants, plusieurs pistes d’améliorations nous semblent possibles. Nous pensons notamment à la taille du réseau et au temps d’entrainement accordé au réseau. Nous n’avions ni le temps à disposition ni les équipements nécessaires pour tester ces pistes. Pour le réseau jouant à Snake, nous pensons que l’augmentation du nombre d’entrées de l’environnement permettrait d’améliorer les performances du réseau. En effet, Ceci permettrait au réseau de mieux tenir compte de l’ensemble de son environnement pour déterminer ses actions. La mise en pratique au travers des projets de l’intelligence artificielle nous a permis de remettre en cause des préjugés, d’approfondir des aspects théoriques et d’identifier nos lacunes.
Conclusions
L’objectif principal de ce travail a été atteint, car il nous a permis de nous confronter concrètement au monde de l’intelligence artificielle. Bien que nous ne l’ayons qu’effleuré, nous avons pu expérimenter les difficultés et les potentialités de l’IA à partir de notre démarche autodidacte. Celle-ci pourrait se poursuivre pour comprendre et mettre en œuvre des réseaux de type Transformeur.
Appréciation de l’expert
Prof. François Fleuret
Ce travail est impressionnant par la quantité et la qualité des développements informatiques, et la diversité des problèmes traités. L’apprentissage profond demande une compréhension de concepts mathématiques allant du traitement du signal aux probabilités, combinée à des compétences en programmation et en développement logiciel. Une telle performance correspond à celle d’un brillant étudiant en fin de bachelor, et est absolument remarquable.
Mention:
très bien
Lycée-Collège de l’Abbaye, St-Maurice
Enseignant: Jan Schönbächler