Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Apprendre Réseaux Antagonistes Génératifs (GANs) | Fondements Théoriques
IA Générative

bookRéseaux Antagonistes Génératifs (GANs)

Réseaux Antagonistes Génératifs (GANs) sont une catégorie de modèles génératifs introduits par Ian Goodfellow en 2014. Ils se composent de deux réseaux de neurones — le Générateur et le Discriminateur — entraînés simultanément dans un cadre de théorie des jeux. Le générateur tente de produire des données ressemblant aux données réelles, tandis que le discriminateur cherche à distinguer les données réelles des données générées.

Les GANs apprennent à générer des échantillons de données à partir de bruit en résolvant un jeu à somme nulle (minimax). Au fil de l'entraînement, le générateur s'améliore dans la production de données réalistes, et le discriminateur devient plus performant pour distinguer les données réelles des données artificielles.

Architecture d'un GAN

Un modèle GAN de base se compose de deux éléments principaux :

1. Générateur (G)

  • Prend en entrée un vecteur de bruit aléatoire zpz(z)z \sim p_z(z) ;
  • Le transforme via un réseau de neurones en un échantillon de données G(z)G(z) destiné à ressembler à des données issues de la distribution réelle.

2. Discriminateur (D)

  • Prend en entrée soit un échantillon de données réelles xpx(x)x \sim p_x(x), soit un échantillon généré G(z)G(z) ;
  • Produit un scalaire compris entre 0 et 1, estimant la probabilité que l'entrée soit réelle.

Ces deux composants sont entraînés simultanément. Le générateur vise à produire des échantillons réalistes pour tromper le discriminateur, tandis que le discriminateur cherche à distinguer correctement les échantillons réels des échantillons générés.

Jeu minimax des GANs

Au cœur des GANs se trouve le jeu minimax, un concept issu de la théorie des jeux. Dans ce cadre :

  • Le générateur GG et le discriminateur DD sont des joueurs en compétition ;
  • DD cherche à maximiser sa capacité à distinguer les données réelles des données générées ;
  • GG cherche à minimiser la capacité de DD à détecter ses fausses données.

Cette dynamique définit un jeu à somme nulle, où le gain de l'un correspond à la perte de l'autre. L'optimisation est définie comme suit :

minGmaxDV(D,G)=Expx[logD(x)]+Ezpz[log(1D(G(z)))]\underset{G}{\min} \, \underset{D}{\max} \, V(D, G) = \mathbb{E}_{\mathbf{x} \sim p_{x}}[\log D(\mathbf{x})] + \mathbb{E}_{\mathbf{z} \sim p_z}[\log(1 - D(G(\mathbf{z})))]

Le générateur tente de tromper le discriminateur en générant des échantillons G(z)G(z) aussi proches que possible des données réelles.

Fonctions de perte

Bien que l'objectif original des GAN définisse un jeu minimax, en pratique, des fonctions de perte alternatives sont utilisées pour stabiliser l'entraînement.

  • Perte du générateur non saturante :
LG=Ezpz[logD(G(z))]L_G=-\mathbb{E}_{z \sim p_z}[\log{D(G(z))}]

Cela permet au générateur de recevoir des gradients importants même lorsque le discriminateur fonctionne bien.

  • Perte du discriminateur :
LD=Expx[logD(x)]Ezpz[log(1D(G(z)))]L_D = -\mathbb{E}_{x \sim p_x}[\log{D(x)}] - \mathbb{E}_{z \sim p_z}[\log{(1-D(G(z)))}]

Ces fonctions de perte encouragent le générateur à produire des échantillons qui augmentent l'incertitude du discriminateur et améliorent la convergence pendant l'entraînement.

Principales variantes des architectures GAN

Plusieurs types de GAN ont émergé pour répondre à des limitations spécifiques ou pour améliorer les performances :

GAN conditionnel (cGAN)

Les GAN conditionnels étendent le cadre standard des GAN en introduisant des informations supplémentaires (généralement des étiquettes) à la fois dans le générateur et dans le discriminateur. Au lieu de générer des données à partir d'un bruit aléatoire uniquement, le générateur reçoit à la fois le bruit zz et une condition yy (par exemple, une étiquette de classe). Le discriminateur reçoit également yy pour juger si l'échantillon est réaliste sous cette condition.

  • Cas d'utilisation : génération d'images conditionnelles par classe, traduction d'image à image, génération de texte à image.

GAN Convolutif Profond (DCGAN)

Les DCGAN remplacent les couches entièrement connectées des GAN originaux par des couches convolutionnelles et des couches convolutionnelles transposées, ce qui les rend plus efficaces pour la génération d’images. Ils introduisent également des recommandations architecturales telles que la suppression des couches entièrement connectées, l’utilisation de la normalisation par lot et l’emploi des activations ReLU/LeakyReLU.

  • Cas d’utilisation : génération d’images photoréalistes, apprentissage de représentations visuelles, apprentissage non supervisé de caractéristiques.

CycleGAN Les CycleGAN répondent au problème de la traduction d’images non appariées. Contrairement à d’autres modèles nécessitant des ensembles de données appariées (par exemple, la même photo dans deux styles différents), les CycleGAN peuvent apprendre des correspondances entre deux domaines sans exemples appariés. Ils introduisent deux générateurs et deux discriminateurs, chacun responsable d’une direction de conversion (par exemple, photos vers peintures et inversement), et imposent une perte de cohérence cyclique pour garantir que la traduction d’un domaine à l’autre puis le retour donne l’image d’origine. Cette perte est essentielle pour préserver le contenu et la structure.

La perte de cohérence cyclique garantit :

GBA(GAB(x))x et GAB(GBA(y))yG_{BA}(G_{AB}(x)) \approx x\ \text{et}\ G_{AB}(G_{BA}(y))\approx y

où :

  • GABG_{AB} mappe les images du domaine A vers le domaine B ;
  • GBAG_{BA} mappe du domaine B vers le domaine A.
  • xA,yBx \in A, y \in B.

Cas d’utilisation : conversion photo en œuvre d’art, traduction cheval-zèbre, conversion de voix entre locuteurs.

StyleGAN

StyleGAN, développé par NVIDIA, introduit un contrôle basé sur le style dans le générateur. Au lieu d’alimenter directement le générateur avec un vecteur de bruit, celui-ci passe par un réseau de mappage pour produire des « vecteurs de style » qui influencent chaque couche du générateur. Cela permet un contrôle précis sur des caractéristiques visuelles telles que la couleur des cheveux, les expressions faciales ou l’éclairage.

Innovations notables :

  • Mélange de styles, permet de combiner plusieurs codes latents ;
  • Normalisation adaptative d’instance (AdaIN), contrôle les cartes de caractéristiques dans le générateur ;
  • Croissance progressive, l’entraînement commence en basse résolution et augmente progressivement.

Cas d’utilisation : génération d’images ultra haute résolution (par exemple, visages), contrôle d’attributs visuels, génération artistique.

Comparaison : GANs vs VAEs

Les GANs constituent une classe puissante de modèles génératifs capables de produire des données hautement réalistes grâce à un processus d'entraînement adversarial. Leur principe repose sur un jeu minimax entre deux réseaux, utilisant des fonctions de perte adversariales pour améliorer itérativement les deux composants. Une compréhension approfondie de leur architecture, de leurs fonctions de perte—y compris les variantes telles que cGAN, DCGAN, CycleGAN et StyleGAN—et de leur contraste avec d'autres modèles comme les VAEs fournit aux praticiens les bases nécessaires pour des applications dans des domaines tels que la génération d'images, la synthèse vidéo, l'augmentation de données, et bien d'autres.

1. Laquelle des propositions suivantes décrit le mieux les composants d'une architecture GAN de base ?

2. Quel est l'objectif du jeu minimax dans les GANs ?

3. Laquelle des affirmations suivantes est vraie concernant la différence entre les GANs et les VAEs ?

question mark

Laquelle des propositions suivantes décrit le mieux les composants d'une architecture GAN de base ?

Select the correct answer

question mark

Quel est l'objectif du jeu minimax dans les GANs ?

Select the correct answer

question mark

Laquelle des affirmations suivantes est vraie concernant la différence entre les GANs et les VAEs ?

Select the correct answer

Tout était clair ?

Comment pouvons-nous l'améliorer ?

Merci pour vos commentaires !

Section 2. Chapitre 7

Demandez à l'IA

expand

Demandez à l'IA

ChatGPT

Posez n'importe quelle question ou essayez l'une des questions suggérées pour commencer notre discussion

Awesome!

Completion rate improved to 4.76

bookRéseaux Antagonistes Génératifs (GANs)

Glissez pour afficher le menu

Réseaux Antagonistes Génératifs (GANs) sont une catégorie de modèles génératifs introduits par Ian Goodfellow en 2014. Ils se composent de deux réseaux de neurones — le Générateur et le Discriminateur — entraînés simultanément dans un cadre de théorie des jeux. Le générateur tente de produire des données ressemblant aux données réelles, tandis que le discriminateur cherche à distinguer les données réelles des données générées.

Les GANs apprennent à générer des échantillons de données à partir de bruit en résolvant un jeu à somme nulle (minimax). Au fil de l'entraînement, le générateur s'améliore dans la production de données réalistes, et le discriminateur devient plus performant pour distinguer les données réelles des données artificielles.

Architecture d'un GAN

Un modèle GAN de base se compose de deux éléments principaux :

1. Générateur (G)

  • Prend en entrée un vecteur de bruit aléatoire zpz(z)z \sim p_z(z) ;
  • Le transforme via un réseau de neurones en un échantillon de données G(z)G(z) destiné à ressembler à des données issues de la distribution réelle.

2. Discriminateur (D)

  • Prend en entrée soit un échantillon de données réelles xpx(x)x \sim p_x(x), soit un échantillon généré G(z)G(z) ;
  • Produit un scalaire compris entre 0 et 1, estimant la probabilité que l'entrée soit réelle.

Ces deux composants sont entraînés simultanément. Le générateur vise à produire des échantillons réalistes pour tromper le discriminateur, tandis que le discriminateur cherche à distinguer correctement les échantillons réels des échantillons générés.

Jeu minimax des GANs

Au cœur des GANs se trouve le jeu minimax, un concept issu de la théorie des jeux. Dans ce cadre :

  • Le générateur GG et le discriminateur DD sont des joueurs en compétition ;
  • DD cherche à maximiser sa capacité à distinguer les données réelles des données générées ;
  • GG cherche à minimiser la capacité de DD à détecter ses fausses données.

Cette dynamique définit un jeu à somme nulle, où le gain de l'un correspond à la perte de l'autre. L'optimisation est définie comme suit :

minGmaxDV(D,G)=Expx[logD(x)]+Ezpz[log(1D(G(z)))]\underset{G}{\min} \, \underset{D}{\max} \, V(D, G) = \mathbb{E}_{\mathbf{x} \sim p_{x}}[\log D(\mathbf{x})] + \mathbb{E}_{\mathbf{z} \sim p_z}[\log(1 - D(G(\mathbf{z})))]

Le générateur tente de tromper le discriminateur en générant des échantillons G(z)G(z) aussi proches que possible des données réelles.

Fonctions de perte

Bien que l'objectif original des GAN définisse un jeu minimax, en pratique, des fonctions de perte alternatives sont utilisées pour stabiliser l'entraînement.

  • Perte du générateur non saturante :
LG=Ezpz[logD(G(z))]L_G=-\mathbb{E}_{z \sim p_z}[\log{D(G(z))}]

Cela permet au générateur de recevoir des gradients importants même lorsque le discriminateur fonctionne bien.

  • Perte du discriminateur :
LD=Expx[logD(x)]Ezpz[log(1D(G(z)))]L_D = -\mathbb{E}_{x \sim p_x}[\log{D(x)}] - \mathbb{E}_{z \sim p_z}[\log{(1-D(G(z)))}]

Ces fonctions de perte encouragent le générateur à produire des échantillons qui augmentent l'incertitude du discriminateur et améliorent la convergence pendant l'entraînement.

Principales variantes des architectures GAN

Plusieurs types de GAN ont émergé pour répondre à des limitations spécifiques ou pour améliorer les performances :

GAN conditionnel (cGAN)

Les GAN conditionnels étendent le cadre standard des GAN en introduisant des informations supplémentaires (généralement des étiquettes) à la fois dans le générateur et dans le discriminateur. Au lieu de générer des données à partir d'un bruit aléatoire uniquement, le générateur reçoit à la fois le bruit zz et une condition yy (par exemple, une étiquette de classe). Le discriminateur reçoit également yy pour juger si l'échantillon est réaliste sous cette condition.

  • Cas d'utilisation : génération d'images conditionnelles par classe, traduction d'image à image, génération de texte à image.

GAN Convolutif Profond (DCGAN)

Les DCGAN remplacent les couches entièrement connectées des GAN originaux par des couches convolutionnelles et des couches convolutionnelles transposées, ce qui les rend plus efficaces pour la génération d’images. Ils introduisent également des recommandations architecturales telles que la suppression des couches entièrement connectées, l’utilisation de la normalisation par lot et l’emploi des activations ReLU/LeakyReLU.

  • Cas d’utilisation : génération d’images photoréalistes, apprentissage de représentations visuelles, apprentissage non supervisé de caractéristiques.

CycleGAN Les CycleGAN répondent au problème de la traduction d’images non appariées. Contrairement à d’autres modèles nécessitant des ensembles de données appariées (par exemple, la même photo dans deux styles différents), les CycleGAN peuvent apprendre des correspondances entre deux domaines sans exemples appariés. Ils introduisent deux générateurs et deux discriminateurs, chacun responsable d’une direction de conversion (par exemple, photos vers peintures et inversement), et imposent une perte de cohérence cyclique pour garantir que la traduction d’un domaine à l’autre puis le retour donne l’image d’origine. Cette perte est essentielle pour préserver le contenu et la structure.

La perte de cohérence cyclique garantit :

GBA(GAB(x))x et GAB(GBA(y))yG_{BA}(G_{AB}(x)) \approx x\ \text{et}\ G_{AB}(G_{BA}(y))\approx y

où :

  • GABG_{AB} mappe les images du domaine A vers le domaine B ;
  • GBAG_{BA} mappe du domaine B vers le domaine A.
  • xA,yBx \in A, y \in B.

Cas d’utilisation : conversion photo en œuvre d’art, traduction cheval-zèbre, conversion de voix entre locuteurs.

StyleGAN

StyleGAN, développé par NVIDIA, introduit un contrôle basé sur le style dans le générateur. Au lieu d’alimenter directement le générateur avec un vecteur de bruit, celui-ci passe par un réseau de mappage pour produire des « vecteurs de style » qui influencent chaque couche du générateur. Cela permet un contrôle précis sur des caractéristiques visuelles telles que la couleur des cheveux, les expressions faciales ou l’éclairage.

Innovations notables :

  • Mélange de styles, permet de combiner plusieurs codes latents ;
  • Normalisation adaptative d’instance (AdaIN), contrôle les cartes de caractéristiques dans le générateur ;
  • Croissance progressive, l’entraînement commence en basse résolution et augmente progressivement.

Cas d’utilisation : génération d’images ultra haute résolution (par exemple, visages), contrôle d’attributs visuels, génération artistique.

Comparaison : GANs vs VAEs

Les GANs constituent une classe puissante de modèles génératifs capables de produire des données hautement réalistes grâce à un processus d'entraînement adversarial. Leur principe repose sur un jeu minimax entre deux réseaux, utilisant des fonctions de perte adversariales pour améliorer itérativement les deux composants. Une compréhension approfondie de leur architecture, de leurs fonctions de perte—y compris les variantes telles que cGAN, DCGAN, CycleGAN et StyleGAN—et de leur contraste avec d'autres modèles comme les VAEs fournit aux praticiens les bases nécessaires pour des applications dans des domaines tels que la génération d'images, la synthèse vidéo, l'augmentation de données, et bien d'autres.

1. Laquelle des propositions suivantes décrit le mieux les composants d'une architecture GAN de base ?

2. Quel est l'objectif du jeu minimax dans les GANs ?

3. Laquelle des affirmations suivantes est vraie concernant la différence entre les GANs et les VAEs ?

question mark

Laquelle des propositions suivantes décrit le mieux les composants d'une architecture GAN de base ?

Select the correct answer

question mark

Quel est l'objectif du jeu minimax dans les GANs ?

Select the correct answer

question mark

Laquelle des affirmations suivantes est vraie concernant la différence entre les GANs et les VAEs ?

Select the correct answer

Tout était clair ?

Comment pouvons-nous l'améliorer ?

Merci pour vos commentaires !

Section 2. Chapitre 7
some-alt