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.
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:
- Le discriminateur classe les données réelles et les fausses données du générateur.
- 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.
- 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.