Pouvons-nous générer un énorme ensemble de données avec Generative Adversarial Networks

14

Je fais face à un problème où je n'ai pas pu trouver suffisamment de jeux de données (images) pour alimenter mon réseau neuronal profond pour l'entraînement.

J'ai été tellement inspiré par l'article Generative Adversarial Text to Image Synthesis publié par Scott Reed et al. sur les réseaux contradictoires génératifs.

J'étais curieux de savoir que, puis-je utiliser un petit ensemble de données disponible comme entrée dans un modèle GAN et générer un ensemble de données beaucoup plus grand pour traiter des modèles de réseau plus profonds?

Sera-ce assez bon?

Alwyn Mathew
la source
Pouvons-nous utiliser GAN pour les jeux de données non-image?
Mohamed EL-KADDOURY
@ MohamedEL-KADDOURY oui bien sûr, avec audio arxiv.org/abs/1802.04208 , avec texte arxiv.org/abs/1801.07736 etc.
Alwyn Mathew

Réponses:

9

Il est peu probable que cela ajoute beaucoup au-delà de vos efforts directs de collecte de données.

La qualité des sorties GAN actuelles (à partir de 2017) ne sera pas suffisamment élevée. Les images produites par un GAN sont généralement petites et peuvent avoir des détails inhabituels / ambigus et des distorsions étranges. Dans l'article que vous avez lié, les images générées par le système à partir d'une phrase ont des blocs de couleur crédibles compte tenu du sujet, mais sans que la phrase ne vous indique à quoi s'attendre, la plupart d'entre elles ne sont pas reconnaissables comme un sujet spécifique.

Les GAN avec un objectif moins ambitieux que de générer des images à partir de phrases (ce qui malgré ma critique ci-dessus, est un exploit vraiment remarquable de l'OMI) devraient produire des images plus proches de la photo-réalisme. Mais leur portée sera moindre et n'inclura probablement pas le type d'image souhaité. De plus, la taille de sortie est généralement petite, par exemple 64x64 ou 128x128 *, et il y a encore suffisamment de distorsions et d'ambiguïtés pour que des photos de terrain originales soient de loin préférables.

Le GAN est lui-même limité par la bibliothèque de formation disponible - il ne fonctionnera pas bien si vous essayez de générer des images en dehors de la portée de ses données de formation. Les résultats présentés dans le document de recherche se concentrent bien sûr sur le domaine fourni par les données de formation. Mais vous ne pouvez pas simplement insérer une phrase dans ce modèle et vous attendre à un résultat qui serait utile ailleurs.

Si vous trouvez un GAN qui a été formé sur un ensemble de données adapté à votre problème, vous feriez probablement mieux d'essayer de trouver les mêmes données directement pour votre projet.

Si vous rencontrez un problème avec des données de vérité terrain limitées, alors peut-être qu'une meilleure approche pour utiliser un GAN serait d'utiliser un classificateur pré-formé tel que VGG-19 ou Inception v5, remplacer les dernières couches entièrement connectées, et bien réglez-le sur vos données. Voici un exemple de cela en utilisant la bibliothèque Keras en Python - d'autres exemples peuvent être trouvés avec des recherches comme "classeur d'image CNN affiné".


* Les GAN de pointe se sont améliorés depuis que j'ai publié cette réponse. Une équipe de recherche de Nvidia a connu un succès remarquable en créant des images photo-réalistes 1024x1024 . Cependant, cela ne change pas les autres points de ma réponse. Les GAN ne sont pas une source fiable d'images pour les tâches de classification d'images, sauf peut-être pour les sous-tâches de tout ce sur quoi le GAN a déjà été formé et est capable de générer de manière conditionnelle (ou peut-être plus trivialement, de fournir des données sources pour les "autres" catégories dans classificateurs).

Neil Slater
la source
3

J'ai exactement le même problème avec un DNN que je suis en train de construire. Prendre mon ensemble de données et synthétiser de nouvelles données avec un GAN semble être une excellente idée. Mais le GAN lui-même apprendra uniquement à produire des images avec la même variance d'image et les mêmes écarts-types que ceux qui ont été appris dans l'ensemble d'apprentissage. Ainsi, vos données nouvellement générées représenteront simplement plus de permutations de la même distribution d'échantillons. Cela aidera votre NN à mieux s'entraîner sur la même distribution, donc cela peut entraîner une plus grande formation.

Michael Bawol
la source
3

D'un point de vue purement théorique, cela ne peut pas être possible.

Tout ensemble de données d'apprentissage donné représente une certaine quantité d'informations sur la structure d'un certain espace. Si vous formez un GAN sur cet ensemble de données, il n'apprendra que des informations représentées par cet ensemble de données. Les données synthétisées par le GAN ne peuvent jamais provenir d'un espace plus grand que les données d'origine, pour la simple raison: d'où proviendraient ces informations? S'il ne figurait pas dans l'ensemble de données d'origine, il ne peut pas non plus figurer dans les données synthétisées du GAN.

Si vous entraînez un réseau neuronal à la convergence sur un ensemble de données, ce réseau neuronal apprendra quelle que soit la structure que l'ensemble de données contient. Toute donnée d'entraînement artificiel synthétisée par un GAN n'ajoutera aucune nouvelle information. Cette idée devrait être simple.

Alex
la source
2

En fait, il est possible d'augmenter un petit ensemble de données avec des GAN pour l'améliorer et cela augmentera également les performances des réseaux de classification, comme vous pouvez le lire ici https://arxiv.org/pdf/1803.01229.pdf . Les GAN sont capables d'apprendre, par exemple, des formes intermédiaires qui ne sont pas impliquées dans le jeu de dates d'origine mais qui sont toujours valides. Les images synthétiques peuvent en effet améliorer la taille de l'ensemble de données et améliorer la précision de la classification CNN.

Jens K
la source