Glossaire

Réseau adversarial génératif (GAN)

Découvre comment les GAN révolutionnent l'IA en générant des images réalistes, en améliorant les données et en favorisant les innovations dans les domaines de la santé, des jeux et bien plus encore.

Entraîne les modèles YOLO simplement
avec Ultralytics HUB

En savoir plus

Les réseaux adversoriels génératifs (GAN) constituent une classe puissante de cadres d'apprentissage automatique, introduits pour la première fois par Ian Goodfellow et ses collègues en 2014. Ils appartiennent au domaine de l'IA générative et sont connus pour leur capacité à générer de nouvelles données qui imitent une certaine distribution des données d'entrée. Les GAN y parviennent grâce à un processus contradictoire impliquant deux réseaux neuronaux concurrents : le générateur et le discriminateur. Cette architecture unique a permis des avancées significatives, en particulier dans le domaine de la vision par ordinateur.

Comment fonctionnent les GANS

L'idée de base des GAN est un jeu compétitif entre deux réseaux :

  1. Le générateur : Ce réseau essaie de créer des données synthétiques (par exemple, des images, des sons, du texte) qui semblent provenir de l'ensemble des données réelles. Il commence par prendre un bruit aléatoire en entrée et tente de le transformer en sorties d'apparence réaliste.
  2. Le Discriminateur : Ce réseau agit comme un juge. Son objectif est de faire la distinction entre les vraies données (provenant des données d'entraînement réelles) et les fausses données produites par le générateur. Il émet une probabilité indiquant dans quelle mesure il pense qu'un échantillon d'entrée est réel.

Pendant la formation, ces deux réseaux sont entraînés simultanément. Le générateur apprend à produire des données de plus en plus réalistes pour tromper le discriminateur, tandis que ce dernier s'améliore pour identifier les fausses données. Ce processus utilise la rétropropagation pour mettre à jour les poids des modèles des deux réseaux en fonction de leurs performances, guidés par une fonction de perte spécifique. Le système atteint un équilibre lorsque le générateur crée des données si convaincantes que le discriminateur ne peut plus faire la différence de manière fiable (il ne fait pas mieux que deviner au hasard).

Concepts clés et défis

Plusieurs concepts sont essentiels pour comprendre les GAN :

  • Perte adverse : Les fonctions de perte sont conçues de manière à ce que l'amélioration du générateur corresponde à la détérioration du discriminateur, et vice versa, ce qui stimule le processus d'apprentissage compétitif.
  • Stabilité de l'entraînement : La formation des GAN peut être notoirement difficile. Les problèmes les plus courants sont les suivants :
    • Effondrement du mode : Le générateur ne produit qu'une variété limitée de sorties, ne parvenant pas à capturer toute la diversité des données d'apprentissage. En savoir plus sur l'effondrement des modes.
    • Gradients en voie de disparition : Le discriminateur devient trop bon trop rapidement, fournissant peu de rétroaction utile (gradients) pour que le générateur puisse apprendre. Voir le problème des gradients qui s'évanouissent.
    • Non-convergence : Les modèles peuvent ne pas atteindre un équilibre stable.

Les chercheurs ont développé diverses techniques et modifications architecturales (comme les Wasserstein GAN ou WGAN) pour atténuer ces défis et améliorer la stabilité de la formation.

Applications dans le monde réel

Les GAN ont trouvé de nombreuses applications, notamment dans la génération de contenu visuel :

  1. Génération d'images réalistes : Les GAN comme StyleGAN et BigGAN peuvent générer des images photoréalistes en haute résolution, telles que des visages humains(This Person Does Not Exist est un exemple populaire), des animaux ou des objets. Cette capacité est précieuse pour la création d'œuvres d'art, d'éléments de jeu, et potentiellement pour générer des données synthétiques afin d'augmenter les ensembles de données pour les modèles d'entraînement tels que Ultralytics YOLO.
  2. Traduction d'image à image : Des modèles comme pix2pix et CycleGAN peuvent transformer des images d'un style à un autre, par exemple en convertissant des images satellites en cartes, des croquis en photos ou en changeant les saisons sur des photographies. Explore les exemples de traduction d'images.
  3. Augmentation des données : Les GAN peuvent générer des variations de données existantes, ce qui permet d'augmenter les données. Ceci est utile dans des domaines tels que l'analyse d'images médicales où les données réelles peuvent être rares, ce qui permet d'améliorer la robustesse des modèles de diagnostic.

GANS par rapport à d'autres modèles génératifs

Les GAN se distinguent des autres approches génératives :

  • Autoencodeurs variationnels (VAE) : Les VAE sont un autre type de modèle génératif, mais ils sont formés différemment, en optimisant une limite inférieure sur la log-vraisemblance des données. Ils produisent généralement des résultats plus lisses mais potentiellement plus flous que les GAN. Lire un aperçu des VAE.
  • Modèles de diffusion : Ces modèles, comme la diffusion stable, fonctionnent en ajoutant progressivement du bruit aux données, puis en apprenant à inverser le processus. Ils permettent souvent d'obtenir des résultats de pointe en matière de qualité et de diversité des images, mais peuvent être plus lents à générer des échantillons que les GAN. Voir l'entrée du glossaire sur les modèles de diffusion.

Alors que les GAN se concentrent sur la génération, les modèles discriminatifs visent à classer ou à prédire en fonction des données d'entrée, comme les modèles utilisés purement pour la classification d'images ou la détection d'objets. Le discriminateur d'un GAN est essentiellement un modèle discriminant, mais son rôle s'inscrit dans un cadre génératif plus large.

Les GAN représentent une étape importante dans l'apprentissage profond, repoussant les limites du potentiel créatif de l'IA. Tu peux aller plus loin en lisant l'article original sur les réseaux adversoriels génératifs. Pour des mises en œuvre pratiques, explore des ressources comme les tutoriels GAN deTensorFlow ou les exemples dePyTorch.

Tout lire