IA 101
Qu’est-ce qu’un rĂ©seau antagoniste gĂ©nĂ©ratif (GAN) ?

Les réseaux antagonistes génératifs (GANs) sont des types d’architectures de réseaux de neurones capables de générer de nouvelles données qui se conforment aux modèles appris. Les GANs peuvent être utilisés pour générer des images de visages humains ou d’autres objets, pour effectuer des traductions d’image à image, pour convertir un type d’image en un autre, et pour améliorer la résolution des images (super résolution) entre autres applications. Puisque les GANs peuvent générer entièrement de nouvelles données, ils sont à la tête de nombreux systèmes, applications et recherches d’avant-garde en intelligence artificielle. Mais comment fonctionnent exactement les GANs ? Explorons comment les GANs fonctionnent et jetons un coup d’œil à certaines de leurs utilisations principales.
Définition des modèles génératifs et des GANs
Un GAN est un exemple de modèle génératif. La plupart des modèles d’intelligence artificielle peuvent être divisés en deux catégories : les modèles supervisés et les modèles non supervisés. Les modèles d’apprentissage supervisé sont généralement utilisés pour discriminer entre différentes catégories d’entrées, pour classer. En revanche, les modèles non supervisés sont généralement utilisés pour résumer la distribution des données, en apprenant souvent une distribution normale des données. Puisqu’ils apprennent la distribution d’un ensemble de données, ils peuvent tirer des échantillons de cette distribution apprise et générer de nouvelles données.
Différents modèles génératifs ont des méthodes différentes pour générer des données et calculer les distributions de probabilité. Par exemple, le modèle Naive Bayes fonctionne en calculant une distribution de probabilité pour les différentes fonctionnalités d’entrée et la classe générative. Lorsque le modèle Naive Bayes rend une prédiction, il calcule la classe la plus probable en prenant la probabilité des différentes variables et en les combinant. D’autres modèles génératifs non basés sur l’apprentissage profond incluent les modèles de mélange gaussien et l’allocation latente de Dirichlet (LDA). Les modèles génératifs basés sur l’apprentissage profond incluent les machines de Boltzmann restreintes (RBM), les autoencodeurs variationnels (VAE), et bien sûr, les GANs.
Les réseaux antagonistes génératifs ont été proposés pour la première fois par Ian Goodfellow en 2014, et ils ont été améliorés par Alec Redford et d’autres chercheurs en 2015, ce qui a conduit à une architecture standardisée pour les GANs. Les GANs sont en fait deux réseaux différents joints ensemble. Les GANs sont composés de deux moitiés : un modèle de génération et un modèle de discrimination, également appelé générateur et discriminateur.
L’architecture des GANs
Les réseaux antagonistes génératifs sont construits à partir d’un modèle de générateur et d’un modèle de discriminateur assemblés. Le travail du modèle de générateur est de créer de nouvelles exemples de données, basées sur les modèles que le modèle a appris à partir des données d’entraînement. Le travail du modèle de discriminateur est d’analyser les images (en supposant qu’il est formé sur des images) et de déterminer si les images sont générées / fausses ou authentiques.

Les deux modèles sont opposés l’un à l’autre, formés dans un style théorique des jeux. L’objectif du modèle de générateur est de produire des images qui trompent son adversaire – le modèle de discriminateur. Pendant ce temps, l’objectif du modèle de discriminateur est de vaincre son adversaire, le modèle de générateur, et de détecter les images fausses que le générateur produit. Le fait que les modèles soient opposés les uns aux autres entraîne une course aux armements où les deux modèles s’améliorent. Le discriminateur reçoit des commentaires sur lesquelles des images étaient authentiques et lesquelles des images étaient produites par le générateur, tandis que le générateur est alimenté d’informations sur lesquelles de ses images ont été signalées comme fausses par le discriminateur. Les deux modèles s’améliorent pendant la formation, avec pour objectif de former un modèle de génération qui puisse produire des données fausses qui sont essentiellement indiscernables des données authentiques.
Une fois qu’une distribution gaussienne des données a été créée pendant la formation, le modèle de générateur peut être utilisé. Le modèle de générateur est initialement alimenté d’un vecteur aléatoire, qu’il transforme en fonction de la distribution gaussienne. En d’autres termes, le vecteur initialise la génération. Lorsque le modèle est formé, l’espace vectoriel sera une version compressée, ou représentation, de la distribution des données. La version compressée de la distribution des données est appelée espace latent, ou variables latentes. Plus tard, le modèle GAN peut alors prendre la représentation de l’espace latent et en tirer des points, qui peuvent être donnés au modèle de générateur et utilisés pour générer de nouvelles données qui sont très similaires aux données d’entraînement.
Le modèle de discriminateur est alimenté d’exemples de l’ensemble du domaine d’entraînement, qui est constitué à la fois de données réelles et de données générées. Les exemples réels sont contenus dans le jeu de données d’entraînement, tandis que les données fausses sont produites par le modèle de générateur. Le processus de formation du modèle de discriminateur est exactement le même que la formation d’un modèle de classification binaire de base.
Le processus de formation des GANs
Examinons tout le processus de formation pour une tâche d’exemple de génération d’images.
Pour commencer, le GAN est formé en utilisant des images réelles comme partie du jeu de données d’entraînement. Cela configure le modèle de discriminateur pour distinguer entre les images générées et les images réelles. Cela produit également la distribution des données que le générateur utilisera pour produire de nouvelles données.
Le générateur prend en entrée un vecteur de données numériques aléatoires et les transforme en fonction de la distribution gaussienne, en renvoyant une image. Cette image générée, aux côtés de certaines images réelles du jeu de données d’entraînement, est alimentée dans le modèle de discriminateur. Le discriminateur rendra une prédiction probabiliste sur la nature des images qu’il reçoit, en produisant une valeur comprise entre 0 et 1, où 1 est généralement des images authentiques et 0 est une image fausse.

Il y a une double boucle de rétroaction en jeu, car le discriminateur est alimenté de la vérité fondamentale des images, tandis que le générateur reçoit des commentaires sur ses performances du discriminateur.
Les modèles de générateur et de discriminateur jouent un jeu à somme nulle l’un avec l’autre. Un jeu à somme nulle est un jeu où les gains d’une partie proviennent au détriment de l’autre partie (la somme est nulle pour les deux actions). Lorsque le modèle de discriminateur peut distinguer avec succès entre les exemples réels et les exemples fausses, aucune modification n’est apportée aux paramètres du discriminateur. Cependant, de grandes mises à jour sont apportées aux paramètres du modèle lorsque celui-ci ne parvient pas à distinguer entre les exemples réels et les exemples fausses. L’inverse est vrai pour le modèle de générateur, il est pénalisé (et ses paramètres mis à jour) lorsqu’il ne parvient pas à tromper le modèle de discriminateur, mais sinon ses paramètres ne sont pas modifiés (ou il est récompensé).
Idéalement, le générateur est en mesure d’améliorer ses performances à un point où le discriminateur ne peut pas distinguer entre les images fausses et les images réelles. Cela signifie que le discriminateur rendra toujours des probabilités de 50 % pour les images réelles et fausses, ce qui signifie que les images générées devraient être indiscernables des images authentiques. Dans la pratique, les GANs ne parviennent généralement pas à ce point. Cependant, le modèle de générateur n’a pas besoin de créer des images parfaitement similaires pour être encore utile pour de nombreuses tâches pour lesquelles les GANs sont utilisés.
Les applications des GANs
Les GANs ont un certain nombre d’applications différentes, la plupart d’entre elles tournant autour de la génération d’images et de composants d’images. Les GANs sont couramment utilisés dans des tâches où les données d’image requises sont manquantes ou limitées d’une manière ou d’une autre, en tant que méthode de génération des données requises. Examinons certaines des utilisations courantes des GANs.
Génération de nouveaux exemples pour les ensembles de données
Les GANs peuvent être utilisés pour générer de nouveaux exemples pour les ensembles de données d’images simples. Si vous n’avez qu’un petit nombre d’exemples d’entraînement et que vous en avez besoin de plus, les GANs pourraient être utilisés pour générer de nouvelles données d’entraînement pour un classificateur d’images, en générant de nouveaux exemples d’entraînement à différents angles et orientations.
Génération de visages humains uniques

La femme de cette photo n’existe pas. L’image a été générée par StyleGAN. Photo: Owlsmcgee via Wikimedia Commons, domaine public (https://commons.wikimedia.org/wiki/File:Woman_1.jpg)
Lorsqu’ils sont suffisamment formés, les GANs peuvent être utilisés pour générer des images de visages humains extrêmement réalistes. Ces images générées peuvent être utilisées pour aider à former des systèmes de reconnaissance faciale.
Traduction d’image à image
Les GANs excellent dans la traduction d’images. Les GANs peuvent être utilisés pour coloriser des images en noir et blanc, traduire des esquisses ou des dessins en images photographiques, ou convertir des images d’un type en un autre.
Traduction de texte à image
La traduction de texte à image est possible grâce aux GANs. Lorsqu’ils sont fournis avec du texte qui décrit une image et l’image qui l’accompagne, un GAN peut être formé pour créer une nouvelle image lorsqu’il est fourni avec une description de l’image souhaitée.
Édition et réparation d’images
Les GANs peuvent être utilisés pour éditer des photographies existantes. Les GANs suppriment des éléments comme la pluie ou la neige d’une image, mais ils peuvent également être utilisés pour réparer des images anciennes, endommagées ou corrompues.
Super-résolution
La super-résolution est le processus de prise d’une image à basse résolution et d’insertion de plus de pixels dans l’image, améliorant ainsi la résolution de l’image. Les GANs peuvent être formés pour prendre une image et générer une version à plus haute résolution de cette image.
Les GANs peuvent également être utilisés pour réparer des images anciennes, endommagées ou corrompues. La super-résolution est le processus de prise d’une image à basse résolution et d’insertion de plus de pixels dans l’image, améliorant ainsi la résolution de l’image. Les GANs peuvent être formés pour prendre une image et générer une version à plus haute résolution de cette image.












