Können wir mit generativen kontradiktorischen Netzwerken große Datenmengen generieren?


14

Ich habe ein Problem, bei dem ich nicht genügend Datensätze (Bilder) gefunden habe, um sie für das Training in mein tiefes neuronales Netzwerk einzuspeisen.

Ich war so inspiriert von der Veröffentlichung Generative Adversarial Text to Image Synthesis von Scott Reed et al. über generative kontradiktorische Netzwerke.

Ich war gespannt darauf, ob ich den verfügbaren kleinen Datensatz als Eingabe für ein GAN-Modell verwenden und einen viel größeren Datensatz generieren kann, um mit tieferen Netzwerkmodellen fertig zu werden.

Wird es gut genug sein?


Können wir GAN für Nicht-Bilddatensätze verwenden?
Mohamed EL-KADDOURY

@ MohamedEL-KADDOURY Ja natürlich, mit Audio arxiv.org/abs/1802.04208 , mit Text arxiv.org/abs/1801.07736 usw.
Alwyn Mathew

Antworten:


9

Es ist unwahrscheinlich, dass dies über Ihre direkten Datenerfassungsbemühungen hinausgeht.

Die Qualität der aktuellen GAN-Ausgaben (ab 2017) wird nicht hoch genug sein. Die von einer GAN erzeugten Bilder sind in der Regel klein und können ungewöhnliche / mehrdeutige Details und ungewöhnliche Verzerrungen aufweisen. In dem von Ihnen verlinkten Artikel weisen die vom System aus einem Satz erzeugten Bilder glaubwürdige Farbblöcke auf, die dem jeweiligen Thema entsprechen. Ohne diesen Satz sind die meisten von ihnen jedoch nicht als ein bestimmtes Thema erkennbar .

GANs mit einem weniger ehrgeizigen Zweck als die Erzeugung von Bildern aus Sätzen (was trotz meiner obigen Kritik eine wahrhaft bemerkenswerte Leistung ist, IMO) sollten eher fotorealistische Bilder produzieren. Ihr Umfang ist jedoch geringer und enthält wahrscheinlich nicht den gewünschten Bildtyp. Außerdem ist die Ausgabegröße in der Regel klein, z. B. 64 x 64 oder 128 x 128 *, und es gibt immer noch genügend Verzerrungen und Unklarheiten, die originalgetreue Fotos vorzuziehen wären.

Das GAN ist selbst durch die verfügbare Trainingsbibliothek begrenzt. Es ist nicht gut, wenn Sie versuchen, Bilder außerhalb des Bereichs der Trainingsdaten zu generieren. Die im Forschungsbericht gezeigten Ergebnisse konzentrieren sich natürlich auf den Bereich, den die Trainingsdaten liefern. Sie können jedoch nicht einfach einen Satz in dieses Modell einfügen und ein Ergebnis erwarten, das an anderer Stelle nützlich wäre.

Wenn Sie eine GAN finden, die für einen geeigneten Datensatz für Ihr Problem geschult wurde, ist es wahrscheinlich besser, wenn Sie versuchen, die gleichen Daten direkt für Ihr Projekt zu beschaffen.

Wenn Sie auf ein Problem mit begrenzten Daten zur Wahrheitsgrundlage stoßen, besteht ein besserer Ansatz für die Verwendung einer GAN darin, einen vorab geschulten Klassifikator wie VGG-19 oder Inception v5 zu verwenden, die letzten vollständig verbundenen Schichten zu ersetzen und in Ordnung zu sein Stimmen Sie es auf Ihre Daten ab. Hier ist ein Beispiel für die Verwendung der Keras-Bibliothek in Python - andere Beispiele können mit Suchanfragen wie "Feineinstellung des CNN-Bildklassifikators" gefunden werden.


* GANs auf dem neuesten Stand der Technik sind besser geworden, seit ich diese Antwort gepostet habe. Ein Forschungsteam von Nvidia hat bemerkenswerte Erfolge bei der Erstellung fotorealistischer Bilder im Format 1024 x 1024 erzielt . Dies ändert jedoch nichts an den anderen Punkten meiner Antwort. GANs sind keine zuverlässige Quelle für Bilder für Bildklassifizierungsaufgaben, mit Ausnahme von Teilaufgaben, für die die GAN bereits geschult wurde, und können bedingt (oder trivialer) Quelldaten für "andere" Kategorien in generieren Klassifikatoren).


3

Ich habe genau das gleiche Problem mit einem DNN, das ich gerade baue. Es scheint eine großartige Idee zu sein, meinen Datensatz zu nehmen und neue Daten mit einer GAN zu synthetisieren. Das GAN selbst lernt jedoch nur, Bilder mit der gleichen Bildvarianz und Standardabweichung wie im Trainingssatz auszugeben. Ihre neu generierten Daten repräsentieren also einfach mehr Permutationen derselben Stichprobenverteilung. Dies hilft Ihrem NN, besser mit derselben Verteilung zu trainieren, daher kann es zu einem höheren Übertraining kommen.


3

Nur aus rein theoretischer Sicht kann dies nicht möglich sein.

Jeder gegebene Trainingsdatensatz repräsentiert eine bestimmte Menge an Informationen über die Struktur eines bestimmten Raums. Wenn Sie eine GAN für diesen Datensatz trainieren, wird sie immer nur aus den durch diesen Datensatz dargestellten Informationen lernen. Die von der GAN synthetisierten Daten können aus dem einfachen Grund niemals aus einem größeren Raum stammen als die Originaldaten: Woher sollen diese Informationen stammen? Wenn es nicht im Originaldatensatz enthalten war, kann es auch nicht in den synthetisierten Daten der GAN enthalten sein.

Wenn Sie ein neuronales Netzwerk auf Konvergenz in einem Datensatz trainieren, lernt dieses neuronale Netzwerk, welche Struktur der Datensatz enthält. Von einer GAN synthetisierte künstliche Trainingsdaten fügen keine neuen Informationen hinzu. Diese Idee sollte einfach sein.


2

Tatsächlich ist es möglich, einen kleinen Datensatz mit GANs zu erweitern, um ihn zu verbessern, und die Leistung von Klassifizierungsnetzwerken zu steigern, wie Sie hier lesen können: https://arxiv.org/pdf/1803.01229.pdf . GANs können z. B. Zwischenformen lernen, die nicht am ursprünglichen Datumssatz beteiligt sind, aber dennoch gültig sind. Synthetische Bilder können also tatsächlich die Größe des Datensatzes und die Genauigkeit der CNN-Klassifizierung verbessern.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.