Réseaux adverses génératifs – Vers la science des données
GAN dans le Deep Learning
Une plongée dans le monde magique du deep learning, débloquant les capacités artistiques de votre machine.
«Nous continuons d’aller de l’avant, d’ouvrir de nouvelles portes et de faire de nouvelles choses, car nous sommes curieux et la curiosité continue de nous conduire sur de nouveaux chemins.» – Walt Disney
ML’achat d’apprentissage fait partie intégrante de notre vie. Cela va de la chose qui vit sur le dessus du clavier de notre téléphone aux choses qui conduisent le domaine des voitures autonomes. Le domaine de l’apprentissage automatique progresse jour après jour, avec des innovations et de nouvelles idées à venir. L’une des contributions de l’apprentissage automatique, précisément le domaine de l’apprentissage profond, est GAN – Generative Adversarial Networks, quelque chose qui, à mon avis, est une pure forme de magie créée par la science.
GAN est une classe de framework d’apprentissage en profondeur dédié à la création de nouvelles choses. Contrairement aux techniques classiques d’apprentissage en profondeur utilisées pour détecter diverses choses, le GAN est utilisé pour produire de nouvelles choses. Considérez GAN comme un peintre; il aime peindre. Identifier un élément particulier, disons qu’un chapeau est quelque chose que tout humain lettré peut faire. Nous pouvons facilement imiter cela sur un ordinateur en utilisant un cadre d’apprentissage en profondeur. Mais, GAN, en revanche, est un pas vers la créativité, un niveau proche de l’intelligence.
L’image ci-dessus n’est pas celle d’une personne réelle mais est générée par une machine à partir de zéro. C’est à cela que sert le GAN.
GAN a été proposé par Ian Goodfellow et ses collègues en 2014 quand Ian avait environ 28 ans. Étant le père de GAN, il est considéré comme l’homme qui a donné aux machines le don de l’imagination. Les légendes disent que Ian a été approché par ses amis au sujet d’un machine qui produit des images dans un bar un soir. Voyons maintenant de plus près les GAN d’Ian.
Avant d’avoir une idée approximative du fonctionnement des GAN, je vous demande de lire un peu sur l’apprentissage en profondeur, tous ses algorithmes généraux tels que la rétropropagation et CNN pour mieux comprendre les GAN. Voici quelques liens utiles.
1. Rétropropagation[[http://neuralnetworksanddeeplearning.com/chap2.html]
2. CNN[[https://brohrer.github.io/how_convolutional_neural_networks_work.html]
3. Réseaux déconvolutionnels adaptatifs[[https://ieeexplore.ieee.org/document/6126474]
Les deux principaux piliers du GAN sont le générateur et le discriminateur. Ce sont deux réseaux de neurones sophistiqués qui sont à l’origine de la magie du GAN.
Essayons d’abord de les comprendre avec un exemple.
Considérez le générateur et le discriminateur comme un étudiant et un assistant d’enseignement (TA) respectivement. Les deux sont ici présents pour un examen. Supposons que les deux ne sachent rien au début. Le travail de l’étudiant (générateur) est d’écrire les réponses, et le rôle du TA (discriminateur) est de vérifier les réponses à partir d’un carnet de réponses. Initialement, les élèves gribouillent quelques réponses aléatoires et les transmettent à l’AT. Le TA attribue aléatoirement des notes approximatives à ces réponses, puis il vérifie les réponses avec le carnet de réponses. Ce faisant, le TA se rend compte de ses erreurs et apprend d’eux tout en donnant les bonnes notes.
De plus, une fois que les élèves obtiennent le feedback des notes, il apprend ses erreurs et essaie de mieux écrire, proche de la bonne réponse. Ce cycle de double boucle continue jusqu’à ce que les réponses produites soient vraiment proches des bonnes réponses. Voilà, en termes simples, comment fonctionne le GAN.
Comme mentionné ci-dessus, le générateur et le discriminateur sont tous deux des réseaux de neurones. Le générateur, comme son nom l’indique, génère de nouvelles instances de données; d’autre part, le discriminateur agit en tant que juge pour les instances de données générées. Ces deux réseaux sont formés à partir de zéro, alors qu’ils se font concurrence dans un jeu de suppositions. Le jeu est basé sur les critères de distribution des données. Nous ne plongerons pas profondément dans les mathématiques de leur travail. Le générateur génère de fausses images à partir d’un échantillon de bruit aléatoire (pour être honnête, rien n’est vraiment aléatoire, alors appelons-le pseudo-aléatoire), puis il le transmet au discriminateur dans l’espoir que ces fausses images soient acceptées comme de vraies images par le discriminateur. Le discriminateur est également transmis avec la vérité du terrain, c’est-à-dire un ensemble de données classifiées réelles. Le discriminateur essaie d’identifier la vraie et la fausse photo, en donnant tout d’abord des probabilités aléatoires entre 0 (faux) et 1 (réel) aux images. Ensuite, il apprend de ses erreurs et propage en arrière l’erreur pour fournir de meilleures probabilités. Ce cycle se poursuit jusqu’à ce qu’il donne des probabilités proches de toutes les images, c’est-à-dire proches de 1 pour les vraies images et proches de 0 pour les fausses images. Une fois cela fait, le retour des probabilités des fausses images est propagé en retour au générateur, qui essaie ensuite de créer de nouvelles images avec de meilleures probabilités. Ce double cycle se poursuit jusqu’à ce que la probabilité des images générées se rapproche de 1. Voilà, en résumé, comment fonctionne le GAN.
TL; DR
- Le générateur génère des images à partir de bruit aléatoire et les envoie vers l’avant.
- Discriminator donne des probabilités des images reçues.
- Discriminator apprend à partir de l’ensemble de données de vérité sur le terrain et fournit des probabilités plus précises. Ensuite, il le renvoie à l’envers.
- Le générateur apprend des probabilités retournées et essaie de créer des images avec de meilleures probabilités.
Maintenant, parlons de quelques applications réelles et intéressantes de GAN; cela vous aidera à réaliser à quel point les GAN sont vraiment magiques.
Voici une liste de quelques applications fantastiques de GAN, répertoriées par Jason Brownlee. Veuillez consulter son article pour en savoir plus sur toutes ces applications.
- Générer des exemples pour les jeux de données d’image
- Générez des photographies de visages humains
- Générez des photographies réalistes
- Générer des personnages de dessins animés
- Traduction d’image à image
- Traduction de texte en image
- Traduction d’images sémantiques en photos
- Génération de la vue frontale du visage
- Générer de nouvelles poses humaines
- Images sur Emojis
- Retouche photo
- Vieillissement du visage
- Mélange de photos
- Super résolution
- Inpainting photo
- Traduction de vêtements
- Prédiction vidéo
- Génération d’objets 3D
Vous pouvez voir GAN en action sur ce site Web incroyable, thispersondoesnotexist.com. Ce site Web utilise StyleGAN2 et vous présente une image aléatoire générée par ordinateur d’une personne qui n’existe pas dans la vie réelle lorsque vous visitez ce site Web. Continuez simplement à vous rafraîchir. Les images générées sont incroyablement réalistes, ce qui permet de montrer la puissance réelle des GAN. Ce site Web a été créé par Phillip Wang pour présenter le potentiel de StyleGAN2 et des GAN en général. N’est-ce pas incroyable?!