Les réseaux antagonistes génératifs
Les modèles d’apprentissage automatique peuvent maintenant générer de nouvelles images à partir de ce qu’ils ont vu dans un ensemble d’images existant. Nous ne pouvons pas vraiment dire que le modèle est créatif. Même si l’image est effectivement nouvelle, le résultat reste fortement inspiré de photos semblables vues auparavant. Ce type d’architecture s’appelle un réseau antagoniste génératif, ou GAN. Si vous connaissez déjà le fonctionnement des GANs, vous pouvez passer à la section suivante pour découvrir la nouveauté apportée par les chercheurs. Sinon, je vais rapidement vous expliquer comment ils fonctionnent.

Les GANs : générateur et discriminateur. Image produite par l’auteur.
Cette puissante architecture reçoit essentiellement un ensemble d’images et tente de les imiter. Elle comprend habituellement deux réseaux, le générateur et le discriminateur. Leurs noms sont assez révélateurs… Le générateur essaie de produire une nouvelle image, tandis que le discriminateur tente de distinguer ces images.
L’entraînement se déroule ainsi : le discriminateur reçoit soit une image du jeu de données d’entraînement, donc une vraie image, soit une image créée par le générateur, appelée fausse image. Il tente ensuite de déterminer si l’image est réelle ou fausse. S’il croit qu’une fausse image est réelle, nous disons que le discriminateur a été trompé et nous mettons ses paramètres à jour afin d’améliorer sa capacité de détection pour le prochain essai. À l’inverse, si le discriminateur répond correctement que l’image est fausse, le générateur est pénalisé et mis à jour de la même manière, ce qui améliore la qualité des prochaines images générées. Ce processus est répété encore et encore jusqu’à ce que le discriminateur se trompe la moitié du temps. Les images générées ressemblent alors beaucoup à celles du vrai jeu de données. Elles semblent avoir été choisies dans ce jeu et en reproduisent le style.
Si vous souhaitez obtenir plus de détails sur le fonctionnement d’un générateur et d’un discriminateur ainsi que sur leur structure interne, je vous recommande de lire l’un de mes nombreux articles à ce sujet, comme celui sur Toonify.
Le problème est que ce processus est longtemps resté une boîte noire et qu’il est extrêmement difficile à entraîner, surtout lorsqu’on souhaite contrôler le type d’images générées. Beaucoup de progrès ont été réalisés pour comprendre quelle partie du réseau générateur contrôle chaque élément.
Sketch Your Own GAN [1]
Traditionnellement, construire un modèle capable de contrôler le style des images générées pour produire ce que nous voulons, comme des chats dans une position précise,
exige des connaissances spécialisées en apprentissage profond, du travail d’ingénierie, de la patience et beaucoup d’essais et d’erreurs. Il faut aussi de nombreux exemples d’images soigneusement sélectionnés qui correspondent au résultat souhaité, ainsi qu’une excellente compréhension du modèle pour l’adapter correctement à vos besoins. Et il faut recommencer tout ce processus pour chaque modification.

Exemple qui transforme un croquis en chat. Image tirée de GANSketching.
Cette nouvelle méthode de Sheng-Yu Wang et de ses collaborateurs de l’Université Carnegie Mellon et du MIT, appelée Sketch Your Own GAN, peut plutôt partir d’un modèle existant, par exemple un générateur entraîné à créer de nouvelles images de chats,
et contrôler sa sortie avec le type de connaissance le plus simple que vous puissiez lui fournir : des croquis dessinés à la main. Tout le monde peut en faire, ce qui rend l’entraînement des GANs beaucoup plus accessible. Plus besoin de travailler fort et de modifier le modèle pendant des heures pour générer un chat dans la position souhaitée en tentant de trouver quelle partie du modèle contrôle chaque élément de l’image !
C’est cool, non ? Cela mérite au moins que vous partagiez cet article dans votre conversation de groupe ! ;) Bien sûr, générer un chat dans une position précise n’a rien d’extraordinaire, mais imaginez la puissance de cette approche. Elle peut partir d’un modèle entraîné à générer n’importe quoi et, avec une poignée de croquis, contrôler ce qui apparaît tout en conservant les autres détails et le même style ! Cette architecture réentraîne un générateur en l’encourageant à produire des images qui suivent la structure des croquis, tout en préservant la diversité du modèle original et la meilleure qualité d’image possible. C’est aussi ce qu’on appelle le fine-tuning d’un modèle, où l’on part d’un puissant modèle existant et on l’adapte pour qu’il réalise mieux notre tâche.

Exemples de génération d’églises à pignons… Image tirée de GANSketching.
Imaginez que vous vouliez vraiment construire une église à pignons, mais que vous ne connaissiez ni les couleurs ni l’architecture précise. Envoyez simplement votre croquis au modèle et obtenez une source d’inspiration infinie pour votre création ! Bien sûr, il s’agit encore de travaux de recherche préliminaires et le résultat suivra toujours le style du jeu de données utilisé pour entraîner le générateur. Les images sont tout de même toutes *nouvelles* et peuvent être étonnamment belles !


Exemples de transformation de croquis en images avec une tête de cheval. Image tirée de GANSketching.
Mais comment ont-ils fait ? Qu’ont-ils découvert sur les modèles génératifs pour réussir à contrôler la sortie ?
Une telle tâche présente différents défis, notamment la quantité de données et l’expertise requise pour modifier le modèle. Le problème des données est résolu en utilisant un modèle déjà entraîné, que nous adaptons simplement à notre tâche avec une poignée de croquis plutôt qu’avec les centaines ou milliers de paires de croquis et d’images habituellement nécessaires. Pour résoudre le problème d’expertise, plutôt que de déterminer manuellement les changements à apporter au modèle, les chercheurs transforment l’image générée en représentation sous forme de croquis avec un autre modèle entraîné pour cette tâche, appelé Photosketch. Le générateur est ensuite entraîné comme un GAN traditionnel, mais avec deux discriminateurs plutôt qu’un seul.

Procédure d’entraînement du nouveau générateur. Image tirée de GANSketching.
Le premier discriminateur contrôle la qualité de la sortie, exactement comme dans une architecture de GAN ordinaire, en suivant le même processus d’entraînement décrit précédemment.
Le deuxième discriminateur apprend à distinguer les croquis générés de ceux dessinés par l’utilisateur. Il encourage ainsi les images générées à suivre la structure des croquis de l’utilisateur, de la même façon que le premier discriminateur les encourage à ressembler aux images du jeu de données d’entraînement initial.
Le modèle détermine ainsi par lui-même quels paramètres modifier pour s’adapter à cette nouvelle tâche qui consiste à imiter les croquis. Il élimine donc le besoin d’être un spécialiste du modèle pour jouer avec les modèles génératifs.
Ce domaine de recherche est passionnant, puisqu’il permet à tout le monde de jouer avec les modèles génératifs et d’en contrôler les sorties. Il se rapproche beaucoup plus d’un outil utile dans le monde réel que les premiers modèles, pour lesquels il fallait énormément de temps, d’argent et d’expertise afin de construire un système capable de générer de telles images. Avec seulement une poignée de croquis accessibles à tous, le modèle obtenu peut plutôt produire un nombre infini de nouvelles images qui ressemblent aux croquis d’entrée. Beaucoup plus de personnes peuvent ainsi expérimenter avec ces réseaux génératifs.
Dites-moi ce que vous en pensez et si cette approche vous passionne autant que moi ! Si vous souhaitez obtenir plus de détails sur cette technique, je vous recommande fortement de lire leur article scientifique lié ci-dessous !
Merci de m’avoir lu !
Venez discuter avec nous dans notre communauté Discord : Learn AI Together et partagez vos projets, vos articles scientifiques et vos meilleurs cours, trouvez des coéquipiers pour Kaggle et bien plus encore !
Si vous aimez mon travail et souhaitez rester à jour dans le domaine de l’IA, vous devriez absolument me suivre sur mes autres réseaux sociaux (LinkedIn, Twitter) et vous abonner à mon infolettre hebdomadaire sur l’IA !
Pour me soutenir :
- La meilleure façon de me soutenir est de devenir membre de ce site ou de vous abonner à ma chaîne YouTube si vous préférez le format vidéo.
- Soutenez financièrement mon travail sur Patreon
Références :
- Sheng-Yu Wang et al., « Sketch Your Own GAN », 2021, https://arxiv.org/pdf/2108.02774v1.pdf
- Lien du projet : https://peterwang512.github.io/GANSketching/
- Code : https://github.com/PeterWang512/GANSketching
FAQ
Que permet Sketch Your Own GAN ?
Cette méthode adapte un GAN existant afin que les utilisateurs puissent guider les images générées avec quelques croquis dessinés à la main.
Pourquoi partir d’un GAN préentraîné ?
Le modèle sait déjà générer une catégorie visuelle, ce qui évite les données et les coûts nécessaires pour tout entraîner à partir de zéro.
Que change le fine-tuning ?
Le fine-tuning adapte le générateur préentraîné aux formes ou au style représentés dans les croquis de l’utilisateur.
Comment le contrôle par croquis améliore-t-il l’utilisation pratique ?
Il donne aux créateurs une contrainte intuitive plutôt que de les limiter à des échantillons aléatoires du générateur.
Cette approche élimine-t-elle tous les besoins en données ?
Non. Elle réduit la barrière, mais le GAN de base a tout de même exigé beaucoup de données et l’adaptation a besoin d’exemples utiles.


