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