Les réseaux adversaires génératifs (GAN) sont l'une des technologies modernes qui offrent un grand potentiel dans de nombreux cas d'utilisation, qu'il s'agisse de créer vos images vieillies, d'augmenter votre voix ou de fournir diverses applications dans le domaine médical et dans d'autres secteurs d'activité.
Cette technologie avancée peut vous aider à façonner vos produits et services. Elle peut également être utilisée pour améliorer la qualité des images afin de préserver les souvenirs.
Si les GAN sont une aubaine pour beaucoup, certains les trouvent inquiétants.
Mais qu'est-ce que cette technologie exactement ?
Dans cet article, je vais vous expliquer ce qu'est un GAN, comment il fonctionne et quelles sont ses applications.
Alors, plongeons dans le vif du sujet !
Qu'est-ce qu'un Generative Adversarial Network ?
Un Generative Adversarial Network (GAN) est un cadre d'apprentissage automatique composé de deux réseaux neuronaux qui s'affrontent pour produire des prédictions plus précises telles que des images, de la musique unique, des dessins, etc.
Les GAN ont été conçus en 2014 par un informaticien et ingénieur, Ian Goodfellow, et quelques-uns de ses collègues. Il s'agit de réseaux neuronaux profonds uniques capables de générer de nouvelles données similaires à celles sur lesquelles ils sont entraînés. Ils s'affrontent dans un jeu à somme nulle qui fait qu'un agent perd le jeu tandis que l'autre le gagne.

À l'origine, les GAN ont été proposés comme modèle génératif pour l'apprentissage automatique, principalement l'apprentissage non supervisé. Mais les GAN sont également utiles pour l'apprentissage entièrement supervisé, l'apprentissage semi-supervisé et l'apprentissage par renforcement.
Les deux blocs en compétition dans un GAN sont les suivants :
Le générateur : Il s'agit d'un réseau neuronal convolutionnel qui produit artificiellement des sorties similaires aux données réelles.
Le discriminateur : Il s'agit d'un réseau neuronal déconvolutionnel capable d'identifier les sorties créées artificiellement.
Concepts clés
Pour mieux comprendre le concept de GAN, il convient d'appréhender rapidement quelques notions connexes importantes.
Apprentissage automatique (ML)

L'apprentissage automatique est une partie de l'intelligence artificielle (IA) qui implique l'apprentissage et la construction de modèles exploitant les données pour améliorer les performances et la précision lors de l'exécution de tâches ou de la prise de décisions ou de prédictions.
Les algorithmes d'apprentissage automatique créent des modèles basés sur des données d'entraînement et s'améliorent grâce à l'apprentissage continu. Ils sont utilisés dans de nombreux domaines, notamment la vision artificielle, la prise de décision automatisée, le filtrage des courriels, la médecine, la banque, la qualité des données, la cybersécurité, la reconnaissance vocale, les systèmes de recommandation, etc.
Modèle discriminant

Dans le apprentissage profond et le machine learning, le modèle discriminant fonctionne comme un classificateur pour distinguer un ensemble de niveaux ou deux classes.
Par exemple, faire la différence entre différents fruits ou animaux.
Modèle génératif
Dans les modèles génératifs, des échantillons aléatoires sont pris en compte pour créer de nouvelles images réalistes. Il apprend à partir d'images réelles de certains objets ou êtres vivants pour générer ses propres idées réalistes mais imitées. Ces modèles sont de deux types :
Les autoencodeurs variationnels : Ils utilisent des encodeurs et des décodeurs qui sont des réseaux neuronaux distincts. Cela fonctionne parce qu'une image réaliste donnée passe par un encodeur qui représente ces images sous forme de vecteurs dans un espace latent.
Ensuite, un décodeur est utilisé pour prendre ces interprétations afin de produire des copies réalistes de ces images. Au début, la qualité de l'image peut être faible, mais elle s'améliorera une fois que le décodeur sera pleinement opérationnel, et vous pourrez ignorer l'encodeur.
Réseaux adversaires génératifs (GAN) : Comme nous l'avons vu plus haut, un GAN est un réseau neuronal profond capable de générer de nouvelles données similaires à partir des données qui lui sont fournies. Il fait partie de l'apprentissage automatique non supervisé, qui est l'un des types d'apprentissage automatique abordés ci-dessous.
Apprentissage supervisé

Dans l'apprentissage supervisé, une machine est formée à l'aide de données bien étiquetées. Cela signifie que certaines données sont déjà étiquetées avec la bonne réponse. Dans ce cas, la machine reçoit des données ou des exemples pour permettre à l'algorithme d'apprentissage supervisé d'analyser les données de formation et de produire un résultat précis à partir de ces données étiquetées.
Apprentissage non supervisé
L'apprentissage non supervisé consiste à former une machine à l'aide de données qui ne sont ni étiquetées ni classées. Il permet à l'algorithme d'apprentissage automatique de travailler sur ces données sans être guidé. Dans ce type d'apprentissage, la tâche de la machine consiste à classer des données non triées sur la base de modèles, de similitudes et de différences, sans formation préalable aux données.
Les GAN sont donc associés à l'apprentissage non supervisé en ML. Ils disposent de deux modèles capables de découvrir et d'apprendre automatiquement les modèles à partir des données d'entrée. Ces deux modèles sont le générateur et le discriminateur.
Comprenons-les un peu mieux.
Parties d'un GAN
Le terme "contradictoire" est inclus dans le GAN parce qu'il a deux parties - le générateur et le dénominateur en concurrence. Cela permet de capturer, d'examiner et de reproduire les variations de données dans un ensemble de données. Comprenons mieux ces deux parties d'un GAN.
Générateur

Un générateur est un réseau neuronal capable d'apprendre et de générer de faux points de données, tels que des images et des sons, qui semblent réalistes. Il est utilisé pour la formation et s'améliore grâce à l'apprentissage continu.
Les données générées par le générateur servent d'exemple négatif pour l'autre partie, le dénominateur que nous verrons plus loin. Le générateur prend un vecteur aléatoire de longueur fixe comme entrée pour produire un échantillon de sortie. Il a pour but de présenter la sortie au discriminateur afin qu'il puisse déterminer s'il s'agit d'un vrai ou d'un faux.
Le générateur est entraîné à l'aide de ces composants :
- Vecteurs d'entrée bruités
- Un réseau générateur pour transformer une entrée aléatoire en instance de données
- Un réseau discriminant pour classer les données générées
- Une perte de générateur pour pénaliser le générateur lorsqu'il ne parvient pas à tromper le discriminateur
Le générateur fonctionne comme un voleur qui reproduit et crée des données réalistes pour tromper le discriminateur. Il vise à contourner plusieurs contrôles effectués. Bien qu'il puisse échouer terriblement au début, il continue à s'améliorer jusqu'à ce qu'il génère de nombreuses données réalistes et de haute qualité et qu'il puisse éviter les tests. Une fois cette capacité atteinte, vous pouvez utiliser uniquement le générateur sans avoir besoin d'un discriminateur séparé.
Discriminateur

Un discriminateur est également un réseau neuronal capable de faire la différence entre une image fausse et réelle ou d'autres types de données. Comme le générateur, il joue un rôle essentiel pendant la phase de formation.
Il agit comme la police pour attraper le voleur (données falsifiées par le générateur). Il vise à détecter les fausses images et les anomalies dans une instance de données.
Comme nous l'avons vu précédemment, le générateur apprend et s'améliore sans cesse pour atteindre un point où il devient autonome et produit des images de haute qualité qui ne nécessitent pas de discriminateur. Lorsque les données de haute qualité du générateur sont transmises au discriminateur, celui-ci ne peut plus faire la différence entre une image réelle et une image falsifiée. Vous pouvez donc vous contenter du générateur.
Comment fonctionne le GAN ?
Dans un réseau accusatoire génératif (GAN), trois éléments entrent en jeu :
- Un modèle génératif pour décrire la façon dont les données sont générées.
- Un environnement contradictoire dans lequel le modèle est entraîné.
- Des réseaux neuronaux profonds en tant qu'algorithmes d'IA pour la formation.
Les deux réseaux neuronaux du GAN - le générateur et le discriminateur - sont utilisés pour jouer un jeu contradictoire. Le générateur prend les données d'entrée, telles que des fichiers audio, des images, etc., pour générer une instance de données similaire, tandis que le discriminateur valide l'authenticité de cette instance de données. Ce dernier déterminera si l'instance de données qu'il a examinée est réelle ou non.

Par exemple, vous souhaitez vérifier si une image donnée est réelle ou fausse. Vous pouvez utiliser des données générées manuellement pour alimenter le générateur. Celui-ci créera de nouvelles images répliquées en sortie.
Ce faisant, le générateur vise à ce que toutes les images qu'il génère soient considérées comme authentiques, même si elles sont fausses. Il veut créer des résultats acceptables pour mentir et éviter d'être pris.
Ensuite, ce résultat sera transmis au discriminateur avec un ensemble d'images provenant de données réelles afin de détecter si ces images sont authentiques ou non. Le discriminateur aidera à distinguer les données factuelles des données falsifiées.
Le discriminateur prend en compte à la fois les données réelles et les données fausses et renvoie une probabilité de 0 ou 1. Ici, 1 représente l'authenticité tandis que 0 représente le faux.
Ce processus comporte deux boucles de rétroaction :
- Le générateur rejoint une boucle de rétroaction avec un discriminateur
- Le discriminateur rejoint une autre boucle de rétroaction avec un ensemble d'images réelles
La formation d'un GAN fonctionne parce que le générateur et le discriminateur sont tous deux en formation. Le générateur apprend continuellement en passant de fausses entrées, tandis que le discriminateur apprend à améliorer la détection. Ici, les deux sont dynamiques.
Le discriminateur est un réseau convolutionnel capable de catégoriser les images qui lui sont fournies. Il fonctionne comme un classificateur binomial pour étiqueter les images comme fausses ou réelles.
D'autre part, le générateur est comme un réseau convolutionnel inverse qui prend des échantillons de données aléatoires pour produire des images. Mais le discriminateur vérifie les données à l'aide de techniques de sous-échantillonnage telles que la mise en commun maximale.
Les deux réseaux tentent d'optimiser une perte ou une fonction objective opposée et différente dans un jeu contradictoire. Leurs pertes leur permettent de s'affronter encore plus durement.
Types de GAN

Les réseaux adversaires génératifs sont de différents types en fonction de leur mise en œuvre. Voici les principaux types de GAN utilisés activement :
- GAN conditionnel (CGAN) : Il s'agit d'une technique d'apprentissage profond qui implique des paramètres conditionnels spécifiques pour aider à différencier les vraies données des fausses. Elle inclut également un paramètre supplémentaire - "y" - dans la phase de génération pour produire les données correspondantes. De plus, des étiquettes sont ajoutées à ces données et transmises au discriminateur pour lui permettre de vérifier si les données sont authentiques ou fausses.
- Vanille GAN : Il s'agit d'un type de GAN simple où le discriminateur et le générateur sont des perceptrons multicouches plus simples. Ses algorithmes sont simples et optimisent l'équation mathématique à l'aide de la descente de gradient stochastique.
- GAN convolutif profond (DCGAN) : Il est populaire et considéré comme l'implémentation la plus réussie du GAN. Le DCGAN est composé de ConvNets plutôt que de perceptrons multicouches. Ces ConvNets sont appliqués sans utiliser de techniques telles que le max-pooling ou la connexion complète des couches.
- Super résolution GAN (SRGAN) : Il s'agit d'une implémentation GAN qui utilise un réseau neuronal profond avec un réseau contradictoire pour aider à produire des images de haute qualité. Le SRGAN est particulièrement utile pour mettre à l'échelle de manière efficace des images originales à faible résolution afin d'en améliorer les détails et de minimiser les erreurs.
- Laplacian Pyramid GAN (LAPGAN) : Il s'agit d'une représentation inversible et linéaire qui comprend plusieurs images passe-bande placées à huit espaces d'intervalle avec des résidus de basse fréquence. Le LAPGAN utilise plusieurs réseaux de discriminateurs et de générateurs et plusieurs niveaux de pyramide de Laplacien.
LAPGAN est largement utilisé car il produit une qualité d'image de premier ordre. Ces images sont d'abord sous-échantillonnées à chaque couche de la pyramide, puis mises à l'échelle à chaque couche, où l'on ajoute du bruit aux idées jusqu'à ce qu'elles retrouvent leur taille d'origine.
Applications des GAN
Les réseaux adversaires génératifs sont utilisés dans divers domaines, tels que :
La science

Les GAN peuvent fournir un moyen précis et plus rapide de modéliser la formation de jets à haute énergie et de mener des expériences de physique. Ces réseaux peuvent également être entraînés pour estimer les goulets d'étranglement dans l'exécution de simulations pour la physique des particules qui consomment beaucoup de ressources.
Les GAN peuvent accélérer la simulation et en améliorer la fidélité. En outre, les GAN peuvent contribuer à l'étude de la matière noire en simulant l'effet de lentille gravitationnelle et en améliorant les images astronomiques.
Jeux vidéo

Le monde du jeu vidéo a également exploité les GAN pour mettre à l'échelle des données bidimensionnelles à faible résolution utilisées dans d'anciens jeux vidéo. Il vous aidera à recréer ces données en 4k ou même à des résolutions plus élevées grâce à l'entraînement d'images. Ensuite, vous pouvez réduire l'échantillonnage des données ou des images pour les adapter à la résolution réelle du jeu vidéo.
Entraînez correctement vos modèles GAN. Ils peuvent offrir des images 2D plus nettes et plus claires d'une qualité impressionnante par rapport aux données natives, tout en conservant les détails de l'image réelle, tels que les couleurs.
Parmi les jeux vidéo qui ont exploité les GAN, citons Remake de Resident Evil, Final Fantasy VIII et IX, et bien d'autres encore.
Art et mode
Vous pouvez utiliser les GAN pour générer des œuvres d'art, par exemple pour créer des images d'individus qui n'ont jamais existé, des photographies en peinture, des images de mannequins de mode irréels, et bien d'autres choses encore. Ils sont également utilisés dans les dessins pour générer des ombres virtuelles et des croquis.
Publicité

L'utilisation de GAN pour créer et produire vos publicités vous permettra d'économiser du temps et des ressources. Comme nous l'avons vu plus haut, si vous souhaitez vendre vos bijoux, vous pouvez créer un modèle imaginaire ressemblant à un véritable être humain à l'aide d'un GAN.
Vous pouvez ainsi faire porter vos bijoux au modèle et les présenter à vos clients. Cela vous évitera d'engager un mannequin et de le payer. Vous pouvez même éliminer les dépenses supplémentaires telles que les frais de transport, la location d'un studio, l'engagement de photographes, de maquilleurs, etc.
Cela vous sera très utile si vous êtes une entreprise en pleine expansion et que vous n'avez pas les moyens d'engager un mannequin ou de mettre en place une infrastructure pour les séances de photos publicitaires.
Synthèse audio
Vous pouvez créer des fichiers audio à partir d'un ensemble de clips audio à l'aide des GAN. C'est ce que l'on appelle l'audio génératif. Ne confondez pas cela avec Amazon Alexa, Apple Siri ou d'autres voix d'IA où des fragments de voix sont assemblés et produits à la demande.
L'audio génératif utilise plutôt des réseaux neuronaux pour étudier les propriétés statistiques d'une source audio. Ensuite, il reproduit directement ces propriétés dans un contexte donné. Ici, la modélisation représente la façon dont la parole change après chaque milliseconde.
Apprentissage par transfert

Les études avancées sur l'apprentissage par transfert utilisent les GAN pour aligner les derniers espaces de caractéristiques comme l'apprentissage par renforcement profond. Pour ce faire, les enchâssements de la source et la tâche visée sont transmis au discriminateur afin de déterminer le contexte. Ensuite, le résultat est rétro-propagé via l'encodeur. De cette manière, le modèle continue d'apprendre.
Parmi les autres applications des GAN, citons
- Diagnostic de la perte totale ou partielle de la vision par la détection d'images glaucomateuses
- Visualisation du design industriel, de la décoration intérieure, des articles vestimentaires, des chaussures, des sacs, etc.
- reconstituer les traits du visage d'une personne malade dans le cadre de la médecine légale
- créer des modèles 3D d'un objet à partir d'une image, produire de nouveaux objets sous la forme d'un nuage de points 3D, modéliser des modèles de mouvement dans une vidéo
- Présenter l'apparence d'une personne en fonction de son âge
- Augmentation des données, par exemple en améliorant le classificateur DNN
- Peindre une caractéristique manquante sur une carte, améliorer les vues de rues, transférer des styles de cartographie, etc.
- Produire des images, remplacer un système de recherche d'images, etc.
- Générer des entrées de contrôle pour un système dynamique non linéaire à l'aide d'une variation GAN
- Analyser les effets des changements climatiques sur une maison
- Créer le visage d'une personne en prenant sa voix comme entrée
- Créer de nouvelles molécules pour plusieurs cibles protéiques dans le cancer, la fibrose et l'inflammation
- Animer des gifs à partir d'une image normale
Il existe de nombreuses autres applications des GAN dans divers domaines, et leur utilisation ne cesse de s'étendre. Cependant, il existe également de nombreux cas d'utilisation abusive. Des images humaines basées sur des GAN ont été utilisées à des fins sinistres telles que la production de fausses vidéos et de fausses images.
Les GAN peuvent également être utilisés pour créer des photos et des profils réalistes de personnes sur les médias sociaux qui n'ont jamais existé sur terre. D'autres utilisations abusives des GNA sont la création de fausse pornographie sans le consentement des personnes concernées, la distribution de fausses vidéos de candidats politiques, etc.
Bien que les GNA puissent être une bénédiction dans de nombreux domaines, leur utilisation abusive peut également être désastreuse. C'est pourquoi il convient d'appliquer des lignes directrices appropriées pour leur utilisation.
Conclusion
Les GAN sont un exemple remarquable de technologie moderne. Ils offrent un moyen unique et meilleur de générer des données et de contribuer à des fonctions telles que le diagnostic visuel, la synthèse d'images, la recherche, l'augmentation des données, les arts et les sciences, et bien d'autres encore.
Vous pourriez également être intéressé par les plateformes d'apprentissage automatique "low code" et "no code"pour la création d'applications innovantes.