Que sont les réseaux antagonistes génératifs (GAN) ?

Les réseaux antagonistes génératifs (GAN) correspondent à un type d'architecture de deep learning qui utilise deux réseaux de neurones en concurrence pour générer de nouvelles données. Ces deux réseaux, le générateur et le discriminateur, s'entraînent l'un contre l'autre, ce qui permet de produire un résultat plus précis. Les GAN peuvent être utiles dans différents domaines, y compris la vision par ordinateur, la robotique, la génération d'images, la synthèse vidéo et le traitement du langage naturel.

Comment fonctionnent les GAN ?

La meilleure façon de comprendre le fonctionnement des GAN est de les comparer à une compétition entre un faussaire (le générateur) et un critique d'art (le discriminateur).

  • Le faussaire (générateur) : son objectif est de créer des tableaux impossibles à distinguer de véritables chefs-d'œuvre. Au début, ses tentatives sont grossières et manifestement fausses. Il commence par créer une image aléatoire (comme jeter de la peinture sur une toile).
  • Le critique (discriminateur) : le rôle du critique est de distinguer les vrais tableaux des faux. Au début, c'est facile. Le critique examine l'œuvre d'art originale et la contrefaçon, et donne son avis. En substance, il dit au faussaire : "C'est un faux."
  • La boucle de rétroaction : le faussaire utilise ces commentaires pour s'améliorer. Il apprend ce qui rend une œuvre authentique et ajuste sa technique. Le critique s'améliore également et apprend à repérer des imperfections plus subtiles à mesure que les contrefaçons deviennent plus réalistes.

Ce "jeu" d'opposition se poursuit, les deux réseaux devenant progressivement plus intelligents. Finalement, le faussaire devient si habile que le critique ne peut plus distinguer les contrefaçons des œuvres originales. À ce stade, le GAN est entraîné et peut générer de nouvelles données extrêmement réalistes.

CNN et GAN

Les réseaux de neurones convolutifs (CNN) et les réseaux antagonistes génératifs (GAN) sont tous deux des architectures de deep learning, mais ils ont des atouts et des applications distincts. Les CNN sont souvent utilisés pour les tâches de classification d'images et de détection d'objets, tandis que les GAN sont généralement conçus pour générer de nouvelles instances de données.

Fonctionnalité

Des CNN

GAN

Consommation des données

Ensembles de données majoritairement étiquetés

Ensembles de données étiquetés ou non étiquetés

Sortie

Classification, extraction de caractéristiques

Instances de données nouvelles et variées

Type de modèle

Souvent, l'entraînement des

Générative

Tâches principales

Classification d'images, reconnaissance d'objets

Génération d'images, augmentation des données, création de données synthétiques

Fonctionnalité

Des CNN

GAN

Consommation des données

Ensembles de données majoritairement étiquetés

Ensembles de données étiquetés ou non étiquetés

Sortie

Classification, extraction de caractéristiques

Instances de données nouvelles et variées

Type de modèle

Souvent, l'entraînement des

Générative

Tâches principales

Classification d'images, reconnaissance d'objets

Génération d'images, augmentation des données, création de données synthétiques

Il est important de noter que les CNN sont fréquemment utilisés dans les architectures GAN, le plus souvent en tant que réseau discriminateur. La tâche du discriminateur, qui consiste à distinguer les images réelles des fausses, est un problème de classification d'images pour lequel les CNN sont généralement bien adaptés grâce à leurs puissantes capacités d'extraction de caractéristiques.

Types courants de GAN

Bien que tous les GAN partagent la même structure générateur-discriminateur, différentes variantes ont été développées pour résoudre des problèmes spécifiques. Voici quelques-uns des types les plus importants :

  • GAN conditionnel (cGAN) : si vous souhaitez contrôler ce que le GAN crée, un cGAN vous permet d'ajouter une condition. Au lieu de simplement générer "un visage aléatoire", vous pouvez lui demander de générer "une femme souriante aux cheveux blonds". C'est essentiel pour les applications texte-vers-image.
  • CycleGAN : si vous souhaitez transposer une image dans un autre style mais que vous ne disposez pas de paires d'images parfaitement assorties pour l'entraînement (par exemple, transformer une photo de cheval en zèbre), le CycleGAN est conçu pour la "traduction d'images dissociées", ce qui en fait une référence pour le transfert de style et la transformation d'objets.
  • StyleGAN : ce type de GAN se concentre sur la création d'images réalistes de très haute qualité (en particulier des visages), tout en offrant à l'utilisateur un contrôle précis sur le "style" de l'image, comme l'âge, la coiffure ou l'expression.
  • GAN de super-résolution (SRGAN) : ce GAN est spécialisé dans la conversion d'une image floue et basse résolution en une version nette et haute résolution en générant des détails réalistes.

Si le concept fondamental d'utilisation de deux réseaux antagonistes reste identique dans les différentes variantes des réseaux antagonistes génératifs, les chercheurs ont exploré de nombreuses modifications dans l'architecture et l'entraînement pour surmonter certaines limites et améliorer les performances selon les applications.

À quoi servent les GAN ?

Les GAN ont ouvert de nouvelles possibilités dans de nombreux secteurs. Leurs applications se répartissent généralement dans les domaines clés suivants :

Création et manipulation de contenu

Il s'agit de l'application la plus connue des GAN. Elle permet de générer des images réalistes de personnes, de lieux et d'objets, de créer de l'art numérique et de la musique, et d'utiliser des outils de retouche photo puissants comme le transfert de style (pour donner à une photo l'apparence d'une peinture), la super-résolution (pour rendre les images floues plus nettes) et la synthèse de texte en images.

Augmentation et confidentialité des données

Les données de haute qualité alimentent le machine learning, mais elles peuvent être rares, coûteuses ou privées. Les GAN permettent de résoudre ce problème en générant des données synthétiques. Dans le secteur de la santé, les GAN peuvent créer des radioscopies réalistes, mais anonymes, pour entraîner des modèles de diagnostic sans porter atteinte à la confidentialité des patients. Dans le secteur de la finance, ils peuvent générer des données de transaction synthétiques pour améliorer l'entraînement des systèmes de détection des fraudes. Cela permet de passer outre la pénurie de données et d'équilibrer les ensembles de données.

Simulation et prédiction

Les GAN peuvent apprendre les schémas dans des systèmes complexes pour créer des simulations réalistes. Ils permettent de générer différents scénarios pour l'entraînement des voitures autonomes, de prédire les images suivantes dans une vidéo ou même de découvrir des structures moléculaires potentielles dans le cadre de la découverte de médicaments.

Détection des anomalies et des menaces

Un GAN entraîné sur des données standards devient très performant pour repérer tout ce qui ne correspond pas au modèle. Il permet de détecter les activités financières frauduleuses, d'identifier les intrusions réseau dans le domaine de la cybersécurité et de repérer des défauts de fabrication.

Créer avec des GAN sur Google Cloud

Le développement et le déploiement de GAN nécessitent une puissance de calcul importante et une plate-forme MLOps robuste. Google Cloud propose des outils pour prendre en charge l'intégralité du workflow :

  • Pour créer et gérer des modèles : Vertex AI est une plate-forme de machine learning gérée qui simplifie le processus de création, d'entraînement et de déploiement de modèles complexes comme les GAN. Cette solution fournit un environnement unifié pour gérer vos données et vos tests.
  • Pour un entraînement hautes performances : l'entraînement des GAN nécessite beaucoup de ressources de calcul. Les Cloud TPU sont des accélérateurs matériels spécialement conçus par Google pour accélérer considérablement l'entraînement des modèles de deep learning, ce qui vous permet d'itérer beaucoup plus rapidement des architectures de GAN complexes.
  • Pour un déploiement évolutif : une fois votre modèle entraîné, Google Kubernetes Engine (GKE) fournit un environnement puissant et évolutif pour déployer des GAN conteneurisés dans le cadre d'une application plus vaste.

Passez à l'étape suivante

Profitez de 300 $ de crédits gratuits et de plus de 20 produits Always Free pour commencer à créer des applications sur Google Cloud.

  • Faites des économies grâce à notre approche transparente concernant la tarification
  • Le paiement à l'usage de Google Cloud permet de réaliser des économies automatiques basées sur votre utilisation mensuelle et des tarifs réduits pour les ressources prépayées. Contactez-nous dès aujourd'hui afin d'obtenir un devis.
Google Cloud