Le discriminateur

Le discriminateur d'un GAN est simplement un classificateur. Il essaie de distinguer les données réelles de celles 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 diagramme figure une case intitulée "discriminateur". Deux branches alimentent ce champ depuis la gauche.  La branche supérieure commence en haut à gauche du diagramme, avec une case libellée d'images "réelles". Une flèche mène de ce cylindre vers une case libellée "Sample" (Échantillon). Une flèche de la zone libellée "Sample" sert à insérer la zone "Discriminator". La branche inférieure alimente la zone "Discriminateur" à partir d'une zone libellée "Saisie aléatoire". Une flèche mène de la zone de saisie aléatoire vers une zone intitulée "Generator" (Générateur). Une flèche mène de la zone "Générateur" à une seconde case "Exemple". Une flèche mène de la zone "Exemple" à la zone "Discriminateur". À droite de la zone "Discriminateur", deux flèches renvoient vers deux zones à droite du diagramme. Une flèche mène à une zone intitulée "Perte de discrimination". L'autre flèche mène à une zone intitulée "Perte de générateur". Un encadré jaune entouré d'une flèche pointant vers la gauche et le mot "dispropagation" (Retour arrière) est dessiné autour de la zone de discriminateur et de la zone de perte du discriminateur. Cette zone indique que la rétropropagation fonctionne sur la partie du système contenue dans cette zone jaune.

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

Données d'entraînement des discriminateurs

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 lors de l'entraînement.
  • Instances de données fictives créées par le générateur Le discriminateur utilise ces instances comme exemples négatifs lors de l'entraînement.

Dans la figure 1, les deux cases "Sample" (Échantillon) représentent ces deux sources de données alimentant le discriminateur. Lors de l'entraînement des discriminateurs, le générateur ne s'entraîne pas. Ses pondérations restent constantes, tandis qu'il génère des exemples sur lesquels le discriminateur peut s'entraîner.

Entraîner le discriminateur

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

Pendant la formation aux discriminateurs:

  1. Le discriminateur classe les données réelles et les fausses données du générateur.
  2. La perte du discriminateur pénalise le discriminateur pour avoir classé à tort une instance réelle comme fausse ou une instance fictive comme étant réelle.
  3. Le discriminateur met à jour ses pondérations via la rétropropagation de la perte du discriminateur via son réseau.

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