The Discriminator

Le discriminateur d'un GAN est simplement un classificateur. Il tente de distinguer les données réelles des données créées par le générateur. Il peut utiliser n'importe quelle architecture réseau adaptée au type de données qu'il classe.

Schéma d'un réseau antagoniste génératif. Au centre du schéma se trouve une case intitulée "discriminateur". Deux branches alimentent cette boîte depuis la gauche.  La branche supérieure commence en haut à gauche du diagramme avec un cadre intitulé "Images du monde réel". Une flèche part de ce cylindre et rejoint un rectangle intitulé "Échantillon". Une flèche partant de la zone "Échantillon" alimente la zone "Discriminateur". La branche inférieure alimente la boîte "Discriminator" à partir d'une boîte intitulée "Random Input" (Entrée aléatoire). Une flèche relie le champ "Entrée aléatoire" à un champ intitulé "Générateur". Une flèche part de la zone "Générateur" et pointe vers une deuxième zone "Échantillon". Une flèche relie la zone "Échantillon" à la zone "Discriminateur". Sur le côté droit de la zone "Discriminateur", deux flèches mènent à deux zones sur le côté droit du diagramme. Une flèche mène à un encadré intitulé "Perte du discriminateur". L'autre flèche mène à un cadre intitulé "Perte de générateur". Un cadre jaune avec une flèche pointant vers la gauche et le mot "Backpropagation" est dessiné autour du cadre du discriminateur et du cadre de la perte du discriminateur pour indiquer que la rétropropagation fonctionne sur la partie du système enfermée dans le cadre jaune.

Figure 1: Rétropropagation lors de l'entraînement du discriminateur.

Données d'entraînement du discriminateur

Les données d'entraînement du discriminateur proviennent de deux sources:

  • Instances de données réelles, telles que des images réelles de personnes. Le discriminateur utilise ces instances comme exemples positifs pendant l'entraînement.
  • Instances de données factices créées par le générateur. Le discriminateur utilise ces instances comme exemples négatifs pendant l'entraînement.

Dans la figure 1, les deux cases "Sample" (Exemple) représentent ces deux sources de données qui alimentent le discriminateur. Lors de l'entraînement du discriminateur, le générateur ne s'entraîne pas. Ses poids restent constants pendant qu'il produit des exemples sur lesquels le discriminateur peut s'entraîner.

Entraînement du discriminateur

Le discriminateur se connecte à deux fonctions de perte. Lors de l'entraînement du discriminateur, celui-ci ignore la perte du générateur et n'utilise que la perte du discriminateur. Nous utilisons la perte du générateur lors de l'entraînement du générateur, comme décrit dans la section suivante.

Pendant l'entraînement du discriminateur:

  1. Le discriminateur classe à la fois les données réelles et les données factices du générateur.
  2. La perte du discriminateur pénalise le discriminateur pour avoir mal classé une instance réelle comme fausse ou une instance fausse comme réelle.
  3. Le discriminateur met à jour ses poids via la propagation inverse à partir de la perte du discriminateur via le réseau du discriminateur.

Dans la section suivante, nous verrons pourquoi la perte du générateur se connecte au discriminateur.