Les GAN présentent un certain nombre de modes de défaillance courants. Tous ces problèmes courants sont des domaines de recherche actifs. Bien qu'aucun de ces problèmes n'ait été complètement résolu, nous allons mentionner certaines choses que les utilisateurs ont essayées.
Dégradés qui disparaissent
Des recherches suggèrent que si votre discriminateur est trop bon, l'entraînement du générateur peut échouer en raison de la disparition des gradients. En effet, un discriminateur optimal ne fournit pas suffisamment d'informations pour que le générateur puisse progresser.
Tentatives de correction
- Perte de Wasserstein: la perte de Wasserstein est conçue pour éviter la disparition des gradients, même lorsque vous entraînez le discriminateur de manière optimale.
- Perte minimax modifiée: l'article original sur les GAN proposait une modification de la perte minimax pour gérer les gradients qui disparaissent.
Réduire le mode
En général, vous souhaitez que votre GAN produise une grande variété de sorties. Par exemple, vous souhaitez un visage différent pour chaque entrée aléatoire dans votre générateur de visages.
Toutefois, si un générateur produit une sortie particulièrement plausible, il peut apprendre à ne produire que cette sortie. En fait, le générateur essaie toujours de trouver la sortie qui semble la plus plausible pour le discriminateur.
Si le générateur commence à produire la même sortie (ou un petit ensemble de sorties) encore et encore, la meilleure stratégie du discriminateur est d'apprendre à toujours rejeter cette sortie. Toutefois, si la génération suivante du discriminateur se bloque dans un minimum local et ne trouve pas la meilleure stratégie, il est trop facile pour l'itération suivante du générateur de trouver la sortie la plus plausible pour le discriminateur actuel.
Chaque itération du générateur est trop optimisée pour un discriminateur particulier, et le discriminateur ne parvient jamais à s'échapper du piège. Par conséquent, les générateurs effectuent une rotation sur un petit ensemble de types de sortie. Cette forme d'échec du GAN est appelée effondrement de mode.
Tentatives de correction
Les approches suivantes tentent de forcer le générateur à élargir son champ d'application en l'empêchant de s'optimiser pour un seul discriminateur fixe:
- Perte de Wasserstein: la perte de Wasserstein atténue le collapse de mode en vous permettant d'entraîner le discriminateur de manière optimale sans vous soucier de la disparition des gradients. Si le discriminateur ne reste pas bloqué dans des minima locaux, il apprend à rejeter les sorties sur lesquelles le générateur se stabilise. Le générateur doit donc essayer autre chose.
- GAN déroulés: les GAN déroulés utilisent une fonction de perte de générateur qui intègre non seulement les classifications actuelles du discriminateur, mais aussi les sorties des futures versions du discriminateur. Le générateur ne peut donc pas trop optimiser pour un seul discriminateur.
Échec de la convergence
Les GAN ne parviennent souvent pas à converger, comme indiqué dans le module sur l'entraînement.
Tentatives de correction
Les chercheurs ont essayé d'utiliser différentes formes de régularisation pour améliorer la convergence des GAN, y compris les suivantes:
- Ajouter du bruit aux entrées du discriminateur: consultez, par exemple, Toward Principled Methods for Training Generative Adversarial Networks.
- Pénaliser les poids du discriminateur: consultez, par exemple, Stabilizing Training of Generative Adversarial Networks through Regularization (Stabilisation de l'entraînement des réseaux antagonistes génératifs via la régularisation).