Qu’est-ce qu’un réseau antagoniste génératif (GAN) ?

Auteur

Jobit Varughese

Technical Content Writer

IBM

Qu’est-ce qu’un GAN ?

Un réseau antagoniste génératif, ou GAN, est un modèle de machine learning conçu pour générer des données réalistes en apprenant des schémas à partir de jeux de données d’entraînement existants. Il fonctionne dans un cadre des exigences d’apprentissage non supervisé en utilisant des techniques d’apprentissage profond, où deux réseaux neuronaux travaillent en opposition : l’un génère des données, tandis que l’autre évalue si les données sont réelles ou générées.

Si l’apprentissage profond excelle dans des tâches telles que la classification d’images et la reconnaissance vocale, la génération de nouvelles données, y compris des images ou du texte réalistes, s’est avérée plus difficile en raison de la complexité des calculs dans les modèles génératifs.

Les GAN, introduits par Ian Goodfellow dans son article Generative Adversarial Nets de 2014, offrent une solution révolutionnaire à ce défi.1 Ce cadre des exigences innovant a transformé la modélisation générative, facilitant le développement de modèles et d’algorithmes capables de créer des données réalistes de haute qualité.

Comment fonctionnent les GAN ?

Une architecture GAN se compose de deux réseaux neuronaux profonds : le réseau de générateurs et le réseau de discriminateurs. Le processus d’entraînement du GAN implique que le générateur commence par une entrée aléatoire (bruit) et crée des données synthétiques telles que des images, du texte ou du son qui imite les données réelles de l’ensemble d’entraînement donné. Le discriminateur évalue à la fois les échantillons générés et les données de l’ensemble d’apprentissage, et décide si les données sont réelles ou fausses. Il attribue un score compris entre 0 et 1 : un score de 1 signifie que les données semblent réelles et un score de 0 signifie qu’elles sont fausses. La rétropropagation est ensuite utilisée pour optimiser les deux réseaux. Cela signifie que le gradient de la fonction de perte est calculé en fonction des paramètres du réseau, et que ces paramètres sont ajustés pour minimiser la perte. Le générateur utilise ensuite les commentaires du discriminateur pour s’améliorer, en essayant de créer des données plus réalistes.

La structure d’un GAN

L’entraînement d’une architecture GAN implique un processus antagoniste. Le modèle générateur tente de tromper le modèle discriminant en classant les fausses données comme réelles, tandis que le discriminateur améliore continuellement sa capacité à faire la distinction entre les vraies et les fausses données. Ce processus est guidé par des fonctions de perte qui mesurent les performances de chaque réseau. La perte d’un générateur mesure la capacité du générateur à faire croire au discriminateur que ses données sont réelles. Une faible perte de génération signifie que le générateur crée avec succès des données réalistes. La perte d’un discriminateur mesure la capacité du discriminateur à faire la distinction entre de fausses données et des données réelles. Une faible perte de discriminateur indique que le discriminateur a réussi à identifier les fausses données.  

Par exemple, dans un GAN entraîné pour générer des images de chiens, le générateur transforme le bruit aléatoire en images qui ressemblent à des chiens, tandis que le discriminateur évalue ces images par rapport à des photos de chiens réelles issues du jeu d’entraînement.

Au fil du temps, ce processus antagoniste permet d’améliorer les deux réseaux. Il permet au générateur de créer des données convaincantes et réalistes qui ressemblent étroitement au jeu de données d’origine, tandis que le discriminateur améliore sa capacité à identifier les différences subtiles entre les vraies et les fausses données. 

Types de GAN

Vanilla GAN

Les Vanilla GAN sont la forme de base des réseaux antagonistes génératifs qui comprennent un générateur et un discriminateur engagé dans un jeu antagoniste typique. Le générateur crée de faux échantillons, et le discriminateur vise à faire la distinction entre les vrais et les faux échantillons de données. Les Vanilla GAN utilisent des perceptrons multicouches (MLP) simples ou des couches de neurones pour le générateur et le discriminateur, ce qui les rend faciles à mettre en œuvre. Ces MLP traitent les données et classifient les entrées pour distinguer les objets connus dans un jeu de données. Cependant, ils sont connus pour être instables pendant l’entraînement et nécessitent souvent un réglage minutieux des hyperparamètres pour obtenir de bons résultats.

GAN conditionnels (cGAN)

Un cGAN est un type de réseau antagoniste génératif qui comprend des informations supplémentaires, appelées « étiquettes » ou « conditions », pour le générateur et le discriminateur.2 Ces étiquettes fournissent du contexte, ce qui permet au générateur de produire des données présentant des caractéristiques spécifiques en fonction de l’entrée donnée, plutôt que de s’appuyer uniquement sur du bruit aléatoire comme c’est le cas sur les Vanilla GAN. Cette génération contrôlée rend les cGAN utiles pour les tâches nécessitant un contrôle précis de la sortie. Les cGAN sont largement utilisés pour générer des images, du texte et des données synthétiques adaptés à des objets, des sujets ou des styles spécifiques. Par exemple, un cGAN peut convertir une image noir et blanc en une image couleur en conditionnant le générateur pour transformer l’échelle de gris en modèle de couleur rouge, vert et bleu (RGB). De même, il peut générer une image à partir d’entrées textuelles, telles que « créer une image d’un chat blanc à poils longs », produisant des sorties qui correspondent à la description fournie.

GAN à convolution profonde (DCGAN)

Un GAN à convolution profonde ou Deep convolutional GAN (DCGAN) utilise des réseaux neuronaux convolutifs (CNN) pour le générateur et le discriminateur. Le générateur accepte le bruit aléatoire en entrée et le transforme en données structurées, telles que des images. Il utilise des convolutions transposées (ou déconvolutions) pour augmenter le bruit d’entrée dans une sortie plus grande et plus détaillée en « zoomant » sur le bruit pour créer une image significative. Le discriminateur utilise des couches convolutives standard pour analyser les données d’entrée. Ces couches permettent au discriminateur de « faire un zoom avant » et d’examiner la structure globale et les détails des données pour prendre une décision. Cette approche permet aux DCGAN de générer des images de haute qualité et d’autres données structurées. 

StyleGAN

Le StyleGAN est un type de réseau antagoniste génératif qui produit des images haute résolution, même jusqu’à une résolution de 1024 x 1024. Les StyleGAN sont entraînés à l’aide d’un jeu de données d’images du même objet. Le réseau générateur est composé de plusieurs couches, chacune chargée d’ajouter différents niveaux de détail à l’image, des fonctionnalités de base aux textures complexes. Le réseau de discriminateurs comporte également plusieurs couches, évaluant le niveau de détail et la qualité globale.

CycleGAN

Dans un CycleGAN, le générateur et le discriminateur sont entraînés de manière cyclique. Il est conçu pour la traduction d’image à image à l’aide de jeux de données non appariés. Il s’agit de traduire une image dans un autre style, comme une peinture à l’aide d’un générateur, puis de la traduire dans le style original à l’aide d’un générateur inverse. Cette méthode permet de s’assurer que l’image reconstruite ressemble beaucoup à l’image originale grâce à un processus appelé cohérence de cycle. Ces Résultats sont particulièrement utiles pour les tâches telles que le transfert de style et l’amélioration de l’image. 

GAN à pyramide laplacienne (LAPGAN)

Un GAN à pyramide laplacienne (LAPGAN) est conçu pour générer des images de haute qualité en les affinant à plusieurs échelles. Il commence par générer une image basse résolution, puis ajoute progressivement des détails à plus haute résolution en utilisant une série de GAN. Cette approche à plusieurs échelles, connue sous le nom de pyramide laplacienne, permet de gérer plus efficacement la complexité de la génération d’images haute résolution.

DiscoGAN

DiscoGAN est utilisé pour apprendre des relations inter-domaines sans nécessiter de données d’apprentissage appariées. Il utilise deux générateurs et deux discriminateurs pour convertir les images d’un domaine à un autre et inversement, ce qui permet de s’assurer que l’image reconstruite ressemble beaucoup à l’image initiale grâce à la cohérence du cycle. DiscoGAN est donc efficace pour des tâches telles que la traduction d’image à image, le transfert de style et l’amélioration d’image, même avec des jeux de données non appariés. 

Les dernières tendances en matière d’IA, vues par des experts

Obtenez des informations sur les actualités les plus importantes et les plus intrigantes en matière d’intelligence artificielle. Abonnez-vous à notre newsletter hebdomadaire Think. Lire la Déclaration de confidentialité d’IBM.

Merci ! Vous êtes abonné(e).

Vous recevrez votre abonnement en anglais. Vous trouverez un lien de désabonnement dans chaque newsletter. Vous pouvez gérer vos abonnements ou vous désabonner ici. Consultez la Déclaration de confidentialité d’IBM pour plus d’informations.

Applications des GAN

Les GAN peuvent être utilisés pour diverses applications de vision par ordinateur, de génération d’images, de détection d’objets, de traduction d’image à image, de génération de texte à image, de prédiction de l’image suivante dans la vidéo, etc.

Génération d’images

Les GAN sont utilisés pour générer des images photoréalistes d’échantillons qui n’ont jamais existé et pour créer des visuels à partir de descriptions textuelles, ce qui permet de créer des images sur la base d’attributs ou de scènes spécifiés. BigGAN, entraîné sur de grands jeux de données, génère des données basées sur des classes ou des conditions spécifiques et obtient des résultats de pointe en matière de génération d’images.3 Il est utilisé pour diverses applications, notamment la synthèse d’images, la colorisation et la reconstruction. Par exemple, le GAN-BVRM, une nouvelle méthode de reconstruction visuelle bayésienne basée sur le GAN, utilise un classificateur pour décoder les données d’imagerie par résonance magnétique fonctionnelle (fMRI). Un générateur BigGAN préentraîné produit des images spécifiques aux catégories et des modèles d’encodage sélectionnent des images qui s’alignent sur l’activité cérébrale, améliorant ainsi le naturel et la fidélité dans la reconstruction des stimuli d’image. Les GAN font des progrès significatifs dans le domaine de la santé en générant des données médicales réalistes (IRM, scanners et radiographies), à des fins d’entraînement et d’analyse, et en créant de nouvelles structures moléculaires pour la découverte de médicaments. 

Super résolution d’image

Les GAN peuvent améliorer les images à faible résolution en générant des variations à haute résolution, améliorant ainsi la qualité et les détails des images. Par exemple, StyleGAN2 de NVIDIA génère des images haute résolution et très réalistes avec un contrôle précis sur les attributs, notamment le contenu, l’identité, l’expression et la pose, permettant aux utilisateurs de créer et de manipuler des images pour des applications artistique et pratiques.4

Traduction d’image à image

Les GAN assurent le transfert de style et l’édition d’images en transformant les images d’un domaine à un autre, par exemple en transformant un croquis en version peinte. Par exemple, les CycleGAN sont utilisés pour convertir des photos en tableaux. Ce processus implique un générateur qui convertit les images du domaine source (photographies) vers le domaine cible (tableaux) et vice versa via une contrainte cyclique, ce qui permet de garantir que la cartographie conserve la cohérence sémantique. 

Reciblage vidéo 

Les GAN sont utilisés pour le reciblage vidéo non supervisé, en adaptant le contenu vidéo pour s’adapter à différents rapports d’aspect et formats tout en préservant les informations visuelles importantes. Les Recycle-GAN utilisent une stratégie cyclique similaire à celle que l’on trouve généralement dans les CycleGAN, en l’appliquant spécifiquement aux données vidéo. Par exemple, les Recycle-GAN peuvent convertir une vidéo grand écran en un format carré pour les plateformes de réseaux sociaux, ce qui permet de garantir que les éléments clés et les mouvements de la vidéo restent intacts.5

Manipulation des attributs faciaux 

Les GAN permettent de modifier les fonctionnalités faciales dans les images, telles que les expressions changeantes ou les effets vieillissants, démontrant leur potentiel dans les applications de divertissement et de médias sociaux. StyleGAN opère en appliquant une modification par couche aux échantillons générés en fonction des « styles » extraits de l’espace latent. Ce processus permet un contrôle intuitif de divers attributs, notamment la couleur des cheveux et l’expression faciale, permettant aux utilisateurs de manipuler les visages en fonction de caractéristiques spécifiques sans avoir besoin d’ajustements manuels. Par exemple, StyleGAN peut être utilisé pour changer la couleur des cheveux d’une personne du brun au blond ou pour ajouter un sourire à une expression faciale neutre. 

Détection d’objets 

Les GAN sont utilisés dans la détection d’objets pour améliorer la qualité et la diversité des données d’apprentissage, ce qui peut considérablement améliorer les performances des modèles de détection d’objets. En générant des images synthétiques qui ressemblent étroitement à des données réelles, les GAN enrichissent le jeu de données d’entraînement, ce qui aide le modèle à mieux généraliser et à être plus performant. Par exemple, des recherches ont montré que les performances des modèles d’apprentissage profond pour la détection d’objets se détérioraient considérablement lorsqu’elles étaient appliquées à des images dont la qualité était réduite, telles que celles affectées par du bruit, du flou ou d’autres distorsions.6 Le document présente le cadre des exigences GAN-DO, qui utilise des GAN pour améliorer la détection des modèles d’objets par rapport à des qualités d’image variables, sans ajouter de complexité à l’architecture du modèle ni à la vitesse d’inférence. Les résultats expérimentaux montrent que GAN-DO surpasse les méthodes traditionnelles de réglage fin, conduisant à une meilleure précision dans la détection des objets.

AI Academy

L’essor de l’IA générative pour les entreprises

Découvrez l’essor historique de l’IA générative et ce que cela signifie pour les entreprises.

Autres modèles génératifs pour la génération de données synthétiques

Outre les GAN, les auto-encodeurs variationnels (VAE) sont un autre modèle d’apprentissage profond qui peut créer de nouveaux échantillons de données qui imitent les données du monde réel. Les VAE sont des modèles probabilistes, c’est-à-dire qu’ils représentent les données en termes de distributions de probabilité, qui décrivent la probabilité que différents résultats ou valeurs se produisent dans les données. Ces modèles sont conçus pour apprendre des modèles à partir d’un jeu de données d’entraînement et créer de nouvelles données qui sont des variantes du jeu de données d’origine, plutôt que des répliques exactes. Un auto-encodeur variationnel (VAE) contient deux composants. L’encodeur (modèle de reconnaissance) compresse les données d’entrée complexes telles que les images en données de faible dimension plus simples, et le décodeur (modèle génératif) recrée l’entrée d’origine à partir de la représentation compressée. Les VAE peuvent également générer des échantillons de données complètement nouveaux en s’appuyant sur les modèles du jeu de données d’apprentissage. Les VAE produisent généralement des sorties plus floues et moins nettes, mais sont plus stables à entraîner, tandis que les GAN génèrent des sorties plus nettes et plus réalistes, mais sont plus difficiles à entraîner en raison de l’instabilité.

En définitive, le choix entre les VAE et les GAN dépend des exigences spécifiques de la tâche, telles que la qualité de sortie souhaitée, la stabilité d’entraînement et le besoin de représentations latentes interprétables, ce qui rend chaque modèle particulièrement précieux dans différentes applications.

Avantages et défis des GAN

Les réseaux antagonistes génératifs (GAN) peuvent générer des données hautement réalistes et diverses, telles que des images, du texte et de l’audio. Ils sont notamment utilisés dans les applications de traitement automatique du langage naturel (NLP) pour générer des données textuelles et améliorer les modèles de langage, et dans la génération de musique pour créer de nouvelles compositions et des sons d’instruments réalistes. La simulation et les jeux utilisent des GAN pour générer des environnements réalistes et des caractères et la détection d’anomalies en identifiant des modèles qui s’écartent de la norme. Les GAN facilitent également la recherche scientifique en simulant des données complexes pour des expériences coûteuses ou peu pratiques à réaliser. Ils améliorent les processus machine learning (ML) grâce à l’augmentation des données, en augmentant la quantité et la diversité des ensembles de formation afin de relever le défi de la limitation des big data. Les GAN devraient s’intégrer davantage à des technologies telles que l’apprentissage par renforcement, la robotique et le NLP pour faire progresser les systèmes d’intelligence artificielle (IA). 

Malgré l’essor des transformateurs, les GAN restent pertinents en raison de leur architecture légère et de leur efficacité de calcul, ce qui les rend idéaux pour les déploiements edge. Avec moins de paramètres que les transformateurs, les GAN offrent une génération contrôlée pour une manipulation fine des fonctionnalités (par exemple, les attributs faciaux), ce qui simplifie le réglage pour des tâches spécifiques. Les GAN offrent des vitesses d’inférence plus rapides car elles nécessitent un seul passage (ou un flux d’entrée unique via un réseau neuronal pour générer une production). Cela en fait une solution adaptée aux applications en temps réel sur des appareils de périphérie à ressources limitées, tels que les téléphones mobiles et les systèmes IdO. Ces avantages en font un choix pratique pour des tâches telles que la traduction d’images, la super-résolution et la synthèse vidéo en temps réel dans les environnements de périphérie. 

Cependant, les GAN sont confrontés à des défis importants. L’un des principaux problèmes est l’instabilité de l’entraînement, où le générateur et le discriminateur peuvent ne pas converger correctement, ce qui entraîne des sorties de mauvaise qualité. L’effondrement du mode est un autre défi où le générateur produit une variété limitée, ne parvenant pas à capturer la pleine diversité des données d’apprentissage. Les GAN nécessitent également de grandes quantités de données et des ressources de calcul importantes, ce qui peut constituer un obstacle à leur utilisation généralisée. L’évaluation de la qualité des sorties générées par le GAN est un défi, car les indicateurs traditionnels ne permettent pas de capturer entièrement les nuances des données générées. Contribuer à garantir l’utilisation éthique des échantillons générés est une préoccupation croissante, car les GAN peuvent être utilisés pour créer des faux cachés et d’autres contenus potentiellement nuisibles.

Comment implémenter un modèle GAN 

Un GAN peut être mis en œuvre en utilisant Tensorflow et Keras. Il nécessite un jeu de données, un script générateur et un script discriminateur pour créer un modèle GAN en Python. Voici un guide étape par étape pour vous aider à démarrer :

Étape 1 : Importez les bibliothèques nécessaires, y compris TensorFlow et d’autres bibliothèques essentielles telles que numpy et matplotlib pour la création et l’entraînement du modèle GAN. 

Étape 2 : Chargez et prétraitez le jeu de données, en vous assurant qu’il représente la distribution de données cible (par exemple, images, texte, etc.).  

Étape 3 : créez le modèle générateur en utilisant des couches TensorFlow ou Keras qui prennent du bruit aléatoire et produisent des échantillons de données correspondant à la distribution cible.

Étape 4 : créez le modèle de discriminateur pour classer la réalité réelle par rapport à de faux échantillons de données générés par le générateur. 

Étape 5 : utilisez des optimiseurs appropriés pour le générateur et le discriminateur et définissez les fonctions de perte.

Étape 6 : combinez le générateur et le discriminateur en un seul modèle GAN pour entraîner le générateur à déceler le discriminateur. 

Étape 7 : implémentez une boucle pour alterner l’entraînement du discriminateur et du générateur avec des données réelles et fausses.

Étape 8 : analysez la sortie du générateur et la précision du discriminateur sur les époques pour garantir la convergence.

Étape 9 : utilisez le générateur entraîné pour produire de nouveaux échantillons qui imitent la distribution de données cible.

Étape 10 : tracez ou analysez les données générées pour valider dans quelle mesure le GAN a appris la distribution cible. 

En suivant ces étapes, un modèle GAN de base peut être mis en œuvre à l’aide de TensorFlow.  

L’avenir des GAN est prometteur, avec des progrès attendus en matière de réalisme, de stabilité, d’efficacité et de considérations éthiques. Au fur et à mesure que les GAN s’intégreront à d’autres technologies et trouveront de nouvelles applications, ils continueront de révolutionner divers secteurs et industries.

Solutions connexes
IBM watsonx.ai

Entraînez, validez, réglez et déployez une IA générative, des modèles de fondation et des capacités de machine learning avec IBM watsonx.ai, un studio d’entreprise nouvelle génération pour les générateurs d’IA. Créez des applications d’IA en peu de temps et avec moins de données.

Découvrir watsonx.ai
Solutions d’intelligence artificielle

Mettez l’IA au service de votre entreprise en vous appuyant sur l’expertise de pointe d’IBM dans le domaine de l’IA et sur son portefeuille de solutions.

Découvrir les solutions d’IA
Services d’IA

Réinventez les workflows et les opérations critiques en ajoutant l’IA pour optimiser les expériences, la prise de décision et la valeur métier en temps réel.

Découvrir les services d’IA
Passez à l’étape suivante

Bénéficiez d’un accès centralisé aux fonctionnalités couvrant le cycle de développement de l’IA. Produisez des solutions IA puissantes offrant des interfaces conviviales, des workflows et un accès à des API et SDK conformes aux normes du secteur.

Découvrir watsonx.ai Réserver une démo en direct
Notes de bas de page

1 Goodfellow, I. J., Pouget-Abadie, J., Mirza, M., Xu, B., Warde-Farley, D., Ozair, S., ... & Bengio, Y. (2014). Generative adversarial nets. Advances in neural information processing systems27.

2 Alqahtani, Hamed & Kavakli, Manolya & Kumar, Gulshan. (2019). Applications of Generative Adversarial Networks (GANs): An Updated Review. Archives of Computational Methods in Engineering. 28. 10.1007/s11831-019-09388-y.

3 Qiao, K., Chen, J., Wang, L., Zhang, C., Tong, L., & Yan, B. (2020). BigGAN-based Bayesian reconstruction of natural images from human brain activity. Neuroscience, 444, 92–105. https://doi.org/10.1016/j.neuroscience.2020.07.040.

4 Alarcon, N. (2020). Synthesizing High-Resolution Images with StyleGAN2. NVIDIA Technical Blog. https://developer.nvidia.com/blog/synthesizing-high-resolution-images-with-stylegan2.

5 Bansal, A., Ma, S., Ramanan, D., & Sheikh, Y. (2018). Recycle-GAN: Unsupervised Video Retargeting. arXiv. https://doi.org/10.48550/arXiv.1808.05174.

6 Prakash, CD, Shrivastava, A., & Torresani, L. (2019). It GAN DO Better: GAN-based Detection of Objects on Images with Varying Quality. arXiv. https://arxiv.org/abs/1912.01707.