Ce nouvel article scientifique présente une technique pour entraîner une architecture de GAN. Les GAN sont utilisés dans de nombreuses applications de vision par ordinateur où nous voulons générer une transformation réaliste d’une image selon un style précis. Si vous ne connaissez pas leur fonctionnement, je vous recommande vivement de regarder la vidéo dans laquelle je l’explique avant de poursuivre.
Comme vous le savez, une architecture de GAN s’entraîne de façon antagoniste. Deux réseaux apprennent en même temps. Le premier, le générateur, apprend à produire une image transformée à partir de l’entrée. Le second apprend à distinguer les images générées des vraies images du jeu d’entraînement. Ces vraies images correspondent simplement au résultat de transformation que nous souhaitons obtenir pour chaque entrée. Nous tentons ensuite d’optimiser les deux réseaux en même temps, ce qui rend le générateur de plus en plus efficace pour produire des images qui semblent réelles. Mais deux choses sont nécessaires pour obtenir ces excellents résultats réalistes : un jeu d’entraînement composé de milliers et de milliers d’images, et l’arrêt de l’entraînement avant le surentraînement.

Image tirée de Training Generative Adversarial Networks with Limited Data par NVIDIA.
Pendant l’entraînement d’un GAN, le surentraînement signifie que la rétroaction du discriminateur perd son sens et que les images générées ne font qu’empirer. Il apparaît après un certain point lorsque nous entraînons trop le réseau par rapport à la quantité de données. La qualité se détériore alors, comme vous pouvez le voir ici après les points noirs.
NVIDIA s’est attaquée à ces problèmes dans cet article. L’équipe a constaté qu’ils représentaient essentiellement le même problème et qu’une seule solution pouvait les régler. Elle a proposé une méthode appelée augmentation adaptative du discriminateur. L’approche est assez simple en théorie et peut s’appliquer à n’importe quelle architecture de GAN existante sans rien modifier.

Image tirée de Training Generative Adversarial Networks with Limited Data par NVIDIA.
Comme vous le savez peut-être, nous utilisons dans la plupart des domaines de l’apprentissage profond ce que nous appelons l’augmentation de données pour lutter contre le surentraînement. En vision par ordinateur, elle consiste souvent à appliquer des transformations aux images pendant l’entraînement afin de multiplier la quantité de données. Ces transformations peuvent comprendre une rotation, l’ajout de bruit, le changement des couleurs et bien plus encore. Elles modifient l’image d’entrée et en créent une version unique. Notre réseau s’entraîne ainsi sur un jeu de données beaucoup plus varié sans que nous ayons à créer ou à trouver plus d’images. Malheureusement, cette méthode ne s’applique pas facilement à une architecture de GAN, puisque le générateur apprendrait à produire des images qui contiennent les mêmes augmentations. C’est le problème que l’équipe de NVIDIA a résolu. Elle a trouvé une façon d’utiliser ces augmentations pour empêcher le modèle de se surentraîner tout en évitant qu’elles se retrouvent dans les images générées. En gros, elle applique un ensemble d’augmentations à toutes les images montrées au discriminateur. Chaque transformation possède une probabilité choisie de se produire aléatoirement, puis les performances du discriminateur sont évaluées avec ces images modifiées. Le grand nombre de transformations appliquées au hasard rend très peu probable que le discriminateur voie même une seule image inchangée. Bien sûr, le générateur est entraîné et guidé pour produire uniquement des images propres, sans aucune transformation. Les chercheurs concluent que cette méthode d’entraînement d’un GAN, qui montre au discriminateur des données augmentées, fonctionne uniquement si la probabilité de chaque transformation demeure sous 80 %. Plus elle est élevée, plus les augmentations sont nombreuses et plus le jeu d’entraînement devient varié.

Image tirée de Training Generative Adversarial Networks with Limited Data par NVIDIA.
Les chercheurs ont constaté que cette solution réglait le manque d’images d’entraînement, mais que le surentraînement apparaissait toujours à différents moments selon la taille du jeu initial. Ils ont donc imaginé une façon adaptative d’appliquer l’augmentation. Au lieu d’ajouter un autre hyperparamètre pour choisir la probabilité idéale, ils contrôlent la force de l’augmentation pendant l’entraînement. Elle commence à 0, puis sa valeur est ajustée de façon itérative selon la différence entre les jeux d’entraînement et de validation, ce qui indique si le modèle se surentraîne. Le jeu de validation est simplement un autre ensemble du même type d’images sur lequel le réseau ne s’entraîne pas. Il doit seulement contenir des images que le discriminateur n’a jamais vues. Il sert à mesurer la qualité des résultats et à quantifier le degré de divergence du réseau, donc le surentraînement.

Image tirée de Training Generative Adversarial Networks with Limited Data par NVIDIA.
Vous pouvez voir ici les résultats de cette augmentation adaptative du discriminateur pour plusieurs tailles de jeux d’entraînement dans le jeu FFHQ. La mesure utilisée est la FID. Elle continue de s’améliorer avec le temps et n’atteint jamais le problème de surentraînement où les résultats commencent à se détériorer. La FID, ou distance de Fréchet pour Inception, mesure essentiellement la distance entre la distribution des images générées et celle des images réelles. Elle évalue la qualité des exemples générés. Plus elle est basse, meilleurs sont les résultats.

Le jeu FFHQ contient 70 000 visages de grande qualité tirés de Flickr. Il a été créé comme test de référence pour les réseaux antagonistes génératifs. Comme vous pouvez le voir ici, les chercheurs ont réussi à égaler les résultats de StyleGAN2 en utilisant un ordre de grandeur moins d’images.

Image tirée de Training Generative Adversarial Networks with Limited Data par NVIDIA.
Les résultats sont présentés pour 1 000 à 140 000 exemples d’entraînement, encore une fois avec la même mesure FID sur le jeu FFHQ.
Regardez la vidéo pour voir plus d’exemples de cette nouvelle méthode d’entraînement :
Conclusion
Bien sûr, le code est entièrement accessible et s’intègre facilement à votre architecture de GAN avec TensorFlow. Le code et l’article scientifique sont liés dans les références ci-dessous si vous souhaitez l’implémenter ou mieux comprendre la technique. L’article vient d’être publié à NeurIPS 2020, en même temps qu’une autre annonce de NVIDIA. L’entreprise a annoncé un nouveau programme appelé Applied Research Accelerator Program. Son objectif est de soutenir les projets de recherche qui peuvent avoir un impact concret en étant déployés dans des applications accélérées par GPU, adoptées par des organisations commerciales et gouvernementales. Le programme offre du matériel, du financement, des conseils techniques, du soutien et plus encore aux étudiants. Vous devriez certainement y jeter un coup d’œil si cela correspond à vos besoins actuels. J’ai aussi ajouté le lien dans la description de la vidéo !
Si vous aimez mon travail et souhaitez me soutenir, je vous serais très reconnaissant de me suivre sur mes réseaux sociaux :
- La meilleure façon de me soutenir est de devenir membre gratuit de ce blogue et de recevoir les nouveaux articles.
- Abonnez-vous à ma chaîne YouTube.
- Suivez mes projets sur LinkedIn
- Apprenez l’IA avec nous. Rejoignez notre communauté Discord, partagez vos projets, vos articles scientifiques et les meilleurs cours, trouvez des coéquipiers pour Kaggle et bien plus encore !
Références
Training Generative Adversarial Networks with Limited Data par NVIDIA. Publié à la conférence NeurIPS 2020. https://arxiv.org/abs/2006.06676
ADA : dépôt GitHub avec le code. https://github.com/NVlabs/stylegan2-ada
NVIDIA Research. https://www.nvidia.com/en-us/research/
FAQ
Qu’est-ce que l’augmentation adaptative du discriminateur de NVIDIA ?
L’ADA modifie la force de l’augmentation pendant l’entraînement d’un GAN afin d’empêcher le discriminateur de mémoriser un petit jeu de données.
Pourquoi les GAN se surentraînent-ils avec peu d’images ?
Le discriminateur peut mémoriser les vrais exemples et ne plus fournir au générateur un signal d’entraînement utile.
Comment l’augmentation aide-t-elle le discriminateur ?
Les transformations créent différentes versions des images d’entraînement tout en préservant le contenu sous-jacent que le discriminateur doit reconnaître.
Pourquoi garder la probabilité de transformation sous une certaine limite ?
Une augmentation excessive peut se retrouver dans les images générées ou déformer la tâche. L’étude a obtenu de meilleurs résultats sous une probabilité de 80 %.
Comment la qualité de la génération était-elle surveillée ?
Les chercheurs suivaient la FID pendant l’entraînement afin de mesurer les améliorations et d’éviter la dégradation associée au surentraînement.

