Fonctionnement du générateur et du discriminateur

← Apprentissage des GAN Réalisation et évaluation des performances du GAN →

Un réseau antagoniste génératif (GAN) se compose de deux parties :

Lorsque l’entraînement commence, le générateur génère des données manifestement factices, et le discriminateur apprend rapidement à dire qu'il s'agit de fausses données. À mesure que l'entraînement progresse, le générateur réalise des images de plus en plus capables de tromper le discriminateur. Enfin, si l'entraînement du générateur fonctionne bien, le discriminateur peine à distinguer quelle image est authentique. Il commence à classer les fausses données comme étant réelles, et sa précision diminue.

Figure 1 – Schéma de fonctionnement d’un réseau antagoniste génératif

Le générateur et le discriminateur sont des réseaux de neurones. La sortie du générateur est directement connectée à l'entrée du discriminateur. Grâce à la rétro-propagation, la classification du discriminateur fournit un signal permettant au générateur de mettre à jour ses poids [1].

Explorons en détail les éléments de ce système.

1) Générateur

Le rôle principal du générateur est de créer de nouvelles données. Initialement, la donnée est souvent générée à l’aide d’un facteur aléatoire, puisque le générateur débute sans vraiment connaître les données de départ. Au fil du temps, pendant l’entraînement du GAN, le générateur apprend à produire des données similaires aux données initiales.

En entrée, le générateur prend un vecteur de bruit aléatoire, typiquement échantillonné à partir d’une distribution normale ou uniforme. Ce vecteur sert alors de point de départ pour la génération de données.

Puis, en sortie, il va créer de nouvelles données factices. Dans le cas d’un GAN employé pour la génération d’images, la sortie sera alors une image. La donnée est transmise au discriminateur qui sera ensuite juge de déterminer si elle est authentique ou non.

a) Architecture

L’architecture peut varier, les générateurs de plusieurs GANs populaires ( comme DCGAN par exemple ) sont construits en utilisant des couches convolutives transposées ( souvent appelées couches de « déconvolution », même si le terme est inapproprié ), ce qui aide à sur-échantillonner le vecteur de bruit permettant de produire une image. Le générateur consiste généralement en une séquence des composants suivants :

b) Entraînement

Durant l’entraînement, le générateur essaie de tromper le discriminateur en produisant des données qui seront impossible à discerner des originelles. Le générateur met ensuite à jour ses poids en considérant le retour du discriminateur. S’il distingue correctement que l’image générée est fausse, alors le générateur ajuste ses poids, de manière à générer des données plus convaincantes lors de la prochaine itération.

Ce processus peut être perçu comme une sorte de « jeu » où le générateur essaie constamment de s’améliorer, visant à produire à terme des données presque indistingables des originelles. Cependant, certains problèmes peuvent tout de même apparaître lors de l’entraînement :

2) Discriminateur

Le rôle du discriminateur est de distinguer les vraies des fausses informations. Dans le cas des GANs, le discriminateur essaie de différencier les images authentiques des fausses générées par le générateur.

En entrée, il prend des échantillons de données, authentiques ou générées. Puis, en sortie, il renvoie une valeur scalaire comprise entre 0 et 1, représentant la probabilité que l’entrée soit réelle. Une valeur proche de 1 signifie que l’échantillon est probablement authentique, tandis qu’une valeur proche de 0 suggère qu’il est probablement faux.

a) Architecture

L’architecture ( le nombre de couches, le type de couches, etc. ) peut varier très largement suivant l’objectif ainsi que le jeu de données initial. En l’occurence, pour les images, les discriminateurs utilisent très souvent des réseaux de neurones convolutifs (CNNs).

L’architecture des discriminateurs est souvent très similaire aux traditionnels réseaux de neurones convolutifs (CNNs), mais avec quelques ajustements. Cela consiste généralement en la séquence des éléments suivants :

Évidemment, cette architecture peut varier largement suivant les différents problèmes et jeux de données. Les différences principales entre l’architecture d’un Réseau Neuronal Convolutif, ou CNN, et celle d’un discriminateur de GAN sont les suivantes :

b) Entraînement

Durant l’entraînement, le discriminateur met à jour ses poids de la façon suivante : lorsque des données authentiques lui sont montrées, il doit être entraîné de manière à renvoyer des valeurs proches de 1. Tandis que, lorsque des données factices lui sont montrées, il doit être entraîné de sorte à renvoyer des valeurs proches de 0.

Cependant certains défis restent d’actualité comme les suivants :

← Apprentissage des GAN Réalisation et évaluation des performances du GAN →