Apprentissage des GAN

← Architecture des GANs Fonctionnement du générateur et du discriminateur →

1) L'entraînement

Les Réseaux Adverses Génératifs ou GANs sont très difficile à entraîner. Nous pouvons voir leur entraînement comme un jeu à somme nulle entre deux joueurs [1]. Le jeu entre le discriminateur et le générateur est non-coopératif ce qui signifie que l’amélioration d’un des deux modèles se fait au détriment de l’autre.

Ce genre de structure devient alors stable lorsque les deux joueurs sont équilibrés en terme de capacité. Par exemple, si l’un des joueurs est très fort alors il va dominer le jeu et ne laissera pas le joueur plus faible remporter quoi que ce soit. Dans ce cas, le joueur plus faible ne sera pas en capacité d’apprendre quelque chose d’utile. Nous comprenons alors que l’équilibre entre deux modèles compétitifs est primordial [2].

Trouver l’équilibre entre les modèles génératif et discriminatif peut-être associé à un équilibre de Nash. Il s’agit, en théorie des jeux, du concept de solution le plus utilisé pour les jeux non-coopératifs. Nous pouvons voir cela comme une situation où chacun des joueurs adopte la meilleure stratégie en anticipant celle des autres [3].

Un équilibre de Nash apparaît au sein des GANs lorsque chaque joueur a un coût minimal. Concrètement, les joueurs d’une configuration de GAN sont des réseaux de neurones, disposant de variables continues et dont les fonctions coût sont non convexes. Trouver un équilibre de Nash dans cette configuration est alors loin d’être trivial. Cependant, des algorithmes connus le permettent [2].

L’idée de garder chaque joueur au coût minimum [3] est l’origine de l’utilisation de méthodes basées sur la descente de gradient. Ces méthodes peuvent alors permettre de minimiser la fonction coût de chaque joueur simultanément.

Pour autant, dans une structure de GAN, la modification de la fonction coût d’un joueur en utilisant la descente de gradient peut influencer l’autre joueur dans la mauvaise direction. Il s’agit de la principale raison qui peut mener à l’échec de convergence des GANs.

Comme nous pouvons le voir, les GANs sont très instables et difficiles à entraîner. De plus, il est important d’étudier les problèmes les plus fréquents avant de les développer. La façon la plus simple pour vérifier que l’entraînement se déroule bien est de surveiller les images générées très attentivement et fréquemment (de la même manière que la fonction objectif).

Après avoir observé les images produites durant quelques itérations d’entraînement, un praticien de l’IA saura déterminer si l’entraînement s’oriente dans la bonne direction ou non. Si l’entraînement n’est pas prometteur, alors il est nécessaire de l’arrêter et d’apporter les changements nécessaires au modèle avant de recommencer.

Avant de commencer à développer ou entraîner des GANs, il est important de comprendre les problèmes les plus fréquents lors de leur entraînement. Par ailleurs, il peut y avoir de nombreuses raisons qui peuvent mener à un échec, parfois même cela peut être lié au jeu de données d’entraînement. Il est très difficile d’identifier la raison exacte d’un échec lors de l’entraînement. Cependant, les chercheurs ont observé les deux cas d’échec suivants apparaissant très fréquemment dans le cas des GANs [2].

2) Mode Collapse

a) Identification

Le mode Collapse peut-être comparé à l’apogée d’un artiste, devenant populaire auprès du public et, bloqué par la pression de ne plus réussir à se surpasser, reproduit les mêmes résultats sans cesse. Ceci peut alors mener à un manque de créativité certain.

Similairement, chez les GANs, le mode Collapse apparaît lorsque le générateur se concentre sur la production d’un jeu de données limitées dupant le discriminateur. Il devient alors borné par quelques modes dominants avec les données d’entraînement et ne parvient alors plus à y capter toute leur diversité.

De la même manière qu’un artiste a peur de se laisser tenter par de nouveaux styles, le générateur évite d’explorer l’entièreté des données d’entraînement pour le GAN. Il produit répétitivement des copies des données de base, ratant la richesse présente dans le jeu de données initial [4].

Pour mieux appréhender le concept, voici un exemple où l’on considère des données MNIST qui sont des images de dix modes principaux du chiffre 0 jusqu’à 9 écrits à la main. Le jeu de données a une densité de probabilité de 10 modes, ceux-ci représentant chacun un chiffre.

Considérons un discriminateur entraîné à discerner de réels chiffres écrits à la main de ceux générés. De prime abord, le discriminateur parvient à classifier une grande partie des chiffres correctement. Cependant, il peine avec les images représentant des « 1 » ou des « 9 ». Cette difficulté laisse supposer que le discriminateur est bloqué dans un minimum local de sa fonction coût.

Figure 1 - Images générées par des modèles GAN et WGAN sur MNIST après 1, 100k, 500k et 1000k itérations [5]

La mauvaise classification du discriminateur de certains chiffres est renvoyé en retour au générateur. Celui-ci, cherchant à améliorer ses performances, remarque les faiblesses du discriminateur concernant les images où le chiffre ressemble au « 1 ». En conséquence, le générateur tend seulement vers des images spécifiques représentant ce chiffre écrit à la main ou, même, toute la distribution d’image y ressemblant.

Alors que le discriminateur pourrait éventuellement s’adapter et surpasser cette déception, le générateur pourrait rencontrer d’autres problèmes. Il pourrait passer à un différent mode de distribution des données et se limiter à cette fausse représentation, ou bien ne jamais parvenir à se diversifier dans ses données générées.

b) Solutions

Tandis que les chercheurs continuent d’essayer de comprendre toute l’étendue de la complexité des GANs, plusieurs techniques ont été proposées pour limiter l’apparition du mode Collapse [6].

Les Wasserstein GAN [7, 8] le permettent notamment, étant donné que ceux-ci utilisent la Wasserstein distance en tant que fonction coût plutôt que la traditionnelle cross-entropy. En utilisant la Wasserstein distance, WGANs produisent un signal d’entraînement plus stable, permettant un apprentissage plus lisse et donc éviter l’apparition du mode Collapse. Nous remarquons que son gradient permet une meilleure convergence, rendant les WGANs efficaces dans la prise en main du mode Collapse et générant plus de données diverses et réalistes.

En nous appuyant sur notre exemple, nous remarquons que les images générées par le WGAN avec le jeu de données MNIST n’ont pas été sujettes au mode Collapse. Le générateur a alors produit des sorties conservant la richesse et la diversité du jeu de données initial (Figure 1) [9].

Les Unrolled GANs [10] sont également de bons candidats pour limiter l’apparition du mode Collapse. Ceux-ci utilisent un générateur dont la fonction coût prend en considération non seulement la classification actuelle du discriminateur, mais aussi celles de ses prochaines versions. Ceci permet alors d’éviter de sur-optimiser le générateur selon un seul discriminateur et l’encourage alors à produire des sorties plus diverses et réalistes, en réduisant alors la probabilité d’apparition du mode Collapse [9].

Dans la communauté actuelle des GANs, surmonter le problème du mode Collapse est un réel domaine de recherche. Excepté les méthodes présentées, plusieurs différentes méthodes ont aussi été proposées pour y parvenir. Celles-ci explorent différents modes de distribution des données lors de l’entraînement, comme l’adaptation des taux d’apprentissage [11], la modification de l’architecture du réseau [12], mais aussi l’emploi de méthodes de régularisation [13].

3) Non-Convergence

a) Identification

La non-convergence décrit un cas où l’entraînement du GAN ne parvient jamais à converger ou bien même à produire des images pertinentes. Lors de l’entraînement, les deux joueurs sont placés en compétition et chacun apprend aux dépends de l’autre, cette situation exige alors que chaque joueur soit choisi avec parcimonie, de sorte à créer une situation d’équilibre.

Si l’un des deux joueurs domine l’autre, alors le GAN ne peut converger. Ce genre de problème dans l’entraînement des GANs est connu comme étant un problème de convergence (Convergence Failure) et, dans ce cas, il est impossible qu’ils produisent une sortie pertinente.

Ce problème étant très souvent observé lors de l’entraînement des GANs, nous pouvons l’identifier de la façon suivante :

Si l’entraînement de notre GAN échoue et montre l’un de ces comportements, alors notre modèle a très probablement un problème de convergence. Maintenant, voyons les raisons principales causant un problème de convergence [2].

b) Raisons

La non-convergence apparaît lorsqu’il n’y a pas d’équilibre entre les réseaux discriminateurs et génératifs. Il peut y avoir deux raisons possibles derrière cela. Ce sont les deux scénarios suivants :

Maintenant que nous comprenons davantage ce problème, apprenons comment il est possible de le résoudre [2].

c) Solutions

Il y a différentes façons de pallier le problème de convergence des GANs. Pour cela, il nous suffit de créer un équilibre entre les réseaux discriminants et génératifs, de sorte qu’aucun des deux ne domine l’autre durant l’entraînement. Voyons voir différentes façons de les équilibrer.

Pour éviter le scénario où le générateur domine, nous pouvons tout d’abord rendre le discriminateur plus fort, c’est-à-dire meilleur à rejeter de fausses sorties pendant que le générateur en génère davantage; et dans un second temps, ajouter des couches de régularisation permettant d’apprendre plus lentement, de façon synchronisée avec le discriminateur. Nous pouvons également rendre le générateur plus faible en retirant des couches de son réseau.

Pour éviter le scénario où le discriminateur domine, nous pouvons tout d’abord affaiblir le discriminateur en donnant de mauvais labels à des images réelles, ou bien en ajoutant des techniques de régularisation. Nous pouvons, dans un second temps, rendre le générateur plus fort, c’est-à-dire meilleur à apprendre des représentations et à produire des sorties réalistes. Nous pouvons, aussi ici, rendre le discriminateur plus faible en retirant des couches de son réseau, il apprendra alors plus lentement et de façon synchronisée avec le générateur.

Tout ce qu’il reste à faire, avec ces techniques, est d’équilibrer le processus d’apprentissage des deux modèles pour qu’ils puissent apprendre de façon synchronisée tout en s’améliorant entre eux [2].

← Architecture des GANs Fonctionnement du générateur et du discriminateur →