Par Équipe Blent
Data Scientist
Publié le 14 juin 2022
Catégorie Machine Learning
Au cours des dernières années, les réseaux antagonistes génératifs (GANs) ont suscité beaucoup d’intérêt dans les milieux de la recherche et de l’ingénierie. Ils ont émergé comme une nouvelle et puissante méthode pour apprendre à générer des données réalistes. On s'attend à ce que les GANs se développent rapidement et qu'ils jouent un rôle important dans toute une série de domaines, y compris la vision par ordinateur.
Les GANs ont récemment été utilisés comme une méthode permettant de générer des images de haute qualité à partir de données de faible qualité. Ils sont également capables de générer des images à partir de simples données textuelles, comme des phrases décrivant des images. On pourrait dire qu’ils sont la tendance de nos jours.
Dans cet article, nous allons introduire les GANs, leur fonctionnement, leurs types et leurs cas d’usage.
Les GANs sont des modèles génératifs : ils créent de nouvelles instances de données qui ressemblent à vos données de formation. Par exemple, ils peuvent créer des images qui ressemblent à des photographies de visages humains, même si les visages n’appartiennent à aucune personne réelle. Ces images ont été créées par un GAN :
En 2014, lorsque des chercheurs en IA, dont Ian Goodfellow, ont introduit l’utilisation des GANs, cela a attiré de nombreuses startups et entreprises en IA. Il rattrape regalement les praticiens, les codeurs et les chercheurs dans tous les secteurs, à mesure qu’il mûrit et croît avec le temps.
Le potentiel des GANs pour le bien et le mal est énorme, car ils peuvent apprendre à imiter toute distribution de données. C’est-à-dire qu'ils peuvent apprendre à créer des objets extrêmement semblables à leurs versions réels dans n’importe quel domaine : images, musique, parole, prose. Ils peuvent également être utilisés pour générer du contenu médiatique faux. Par exemple, produire de fausses photos et vidéos, éventuellement, incriminantes ou ce qu'on appelle des Deepfakes.
À lire aussi : découvrez notre formation MLOps
Les GANs sont des réseaux de génération d'image via un process adversarial entre deux modèles distincts, un discriminateur\(D\) et un générateur\(G\), qui sont entraînés simultanément.
Le modèle générateur \(G\) a pour but de capturer la distribution des données d'entrée et générer de nouveaux échantillons appartenant au même domaine, alors que le discriminateur a pour but d'estimer les probabilités que des images soient issues de l'ensemble d'entraînement ou bien qu'elles aient été générées par le générateur \(G\). La performance du modèle de discrimination est utilisée pour mettre à jour les poids du modèle lui-même et du modèle générateur. Cela signifie que le générateur ne voit jamais réellement des exemples du domaine et est adapté en fonction de la performance de la discrimination.
Le pouvoir des réseaux adversariaux vient du fait que le discriminateur \(D\) et le générateur \(G\) peuvent être non linéaire et constituent deux réseaux de neurones distincts qui s'entraînent simultanément.
De manière un peu plus formelle : Pour apprendre la distribution \(p_g\), le générateur \(G\) construit un mapping entre une distribution de bruit à priori \(p_z(z)\) et une loi de probabilité \(p_g\)= \(G(z;\theta_g)\). Le discriminateur \(D(x;\theta_d)\) renvoie une probabilité que \(x\) proviennent d'une donnée réelle plutôt que de \(p_g\).
Cette solution originale renvoie à l'idée du problème de la théorie des jeux min-max dans lequel 2 joueurs (\(G\) and \(D\)) s'affrontent.
Le générateur et le discriminateur s'affrontent en jouant au jeu min-max à somme nulle qui peut être modéliser par la fonction suivante \(V_{GAN}(D,G)\) :
\(\)
V_{GAN}(D,G) = \begin{cases} D: & \maxD \mathbb{E} {x \sim p{data}(x)}[\log D(x)] + \mathbb{E}{z \sim p_z(z)}[\log(1 - D(G(z)))] \ G: & \maxG \mathbb{E}{z \sim p_z(z)}[\log(D(G(z)))] \end{cases} \(\)
Nous voulons nous assurer d'entraîner le discriminateur\(D\) à classifier correctement les valeurs des images issues des images réelles et donc de maximiser
$$\mathbb{E}_{x \sim p_{data}(x)}[\log D(x)]$$
et en même temps le discriminateur doit être capable de détecter les fausses images \(G(z), z \sim p_z(z)\) en retournant une probabilité \(D(G(z))\) proche de 0 en maximisant \(\mathbb{E}_{z \sim p_z(z)}[\log(1- D(G(z)))]\).
Le générateur, quant à lui, veut duper le discriminateur, ainsi il va apprendre à produire des images qui sont de plus en plus similaires à la distribution des images réelles. Ainsi, le but du générateur est de minimiser\(\mathbb{E}_{z \sim p_z(z)}[\log(1- D(G(z)))]\).
Il existe plusieurs cas d'usage des GANs, on en prendra quelques exemples :
La mission principale des GANs est de générer des images réelles compréhensibles par les humains, aujourd'hui ils sont capables de générer des images de visages humains, de plantes, d'animaux, et de tout objets en 2D et en 3D qui n'ont jamais existé. On peut également générer des images à partir de textes, DALL.E 2 par exemple, peut créer des images et de l’art originaux et réalistes à partir d’une description textuelle.
Ce cas d'usage sert démontrer l’utilisation des GANs, en particulier du modèle SRGAN, pour générer des images de sortie avec une résolution de pixel plus élevée, parfois beaucoup plus élevée. Cette technique peut être utilisé pour améliorer des images de satellites.
Il s'agit de traduire des photographies à travers des domaines, tels que le jour à la nuit, l’été à l’hiver, et plus encore avec des CycleGANs.
À lire aussi : découvrez notre formation MLOps
Les GANs peuvent aussi être utilisés pour reconstruire des photos de visages avec des caractéristiques spécifiques, telles que les changements de couleur des cheveux, le style, l’expression du visage, le sexe et même l'angle de rotation du visage et l'âge.
On peut également compléter, colorer ou combiner des images pour obtenir des résultats très réalistes.
Aujourd'hui, il est de plus possible de créer de la musique, de la parole, des vidéos, du texte, des parfums et même de la visualisation de sons en utilisant uniquement des GANs.
Un exemple de visualisation du son, un projet appelé NeuralSynesthesia. Il s'agit de la création d'expériences visuelles à partir du son, en commençant par analyser l'audio pour détecter les percussions et les éléments harmoniques, puis alimenter le GAN par ces éléments afin de créer une expérience visuelle unique.
Il existe de nombreuses applications de génération de données en utilisant des GANs et il existe également plusieurs variantes de ce réseau, des versions améliorées ou bien adaptées à des cas bien précis. On prendra quelque exemples :
Il existe d'autres variantes telles que le DiscoGAN et le IsGAN.
Même si l'apprentissage des modèles de génération d'images est long et difficile, car ce processus est très demandeur en puissance de calcul, plusieurs entreprise et particulier considèrent ces derniers comme une alternative et une approche plus spécifique pour la data augmentation. Dans le cas des domaines les plus complexes, notamment le Deep Learning par renforcement, où le volume de données est limité, les modèles génératifs permettent un meilleur entraînement des modèles tout en fournissant des volumes de données plus ou moins illimités et à faible coût.
Vous souhaitez vous former au MLOps ?
Articles similaires
20 sept. 2022
Hugging Face est une startup française qui s'est fait connaître grâce à l'infrastructure NLP qu'ils ont développée. Aujourd'hui, elle est sur le point de révolutionner le domaine du Machine Learning et traitement automatique du langage naturel. Dans cet article, nous allons présenter Hugging Face et détailler les taches de base que cette librairie permet de réaliser. Nous allons également énumérer ses avantages et ses alternatifs.
Équipe Blent
Data Scientist
Lire l'article
12 juil. 2022
spaCy est une bibliothèque open-source pour le traitement avancé du langage naturel. Elle est conçue spécifiquement pour une utilisation en production et permet de construire des applications qui traitent et comprennent de grands volumes de texte.
Équipe Blent
Data Scientist
Lire l'article
4 juil. 2022
Un auto-encodeur est une structure de réseaux neuronaux profonds qui s'entraîne pour réduire la quantité de données nécessaires pour représenter une donnée d'entrée. Ils sont couramment utilisés en apprentissage automatique pour effectuer des tâches de compression de données, d'apprentissage de représentations et de détection de motifs.
Équipe Blent
Data Scientist
Lire l'article
60 rue François 1er
75008 Paris
Blent est une plateforme 100% en ligne pour se former aux métiers Tech & Data.
Organisme de formation n°11755985075.
Data Engineering
IA Générative
MLOps
Cloud & DevOps
À propos
Gestion des cookies
© 2024 Blent.ai | Tous droits réservés