Ich habe verstanden, wie GAN funktioniert, während zwei Netzwerke (generativ und diskriminativ) miteinander konkurrieren. Ich habe ein DCGAN (GAN mit Faltungsdiskriminator und Entfaltungsgenerator) erstellt, das jetzt erfolgreich handschriftliche Ziffern generiert, die denen im MNIST-Datensatz ähneln.
Ich habe viel über GANs Anwendungen zum Extrahieren von Funktionen aus Bildern gelesen. Wie kann ich mein trainiertes GAN-Modell (im MNIST-Datensatz) verwenden, um Funktionen aus handgeschriebenen MNIST-Digistenbildern zu extrahieren?
Antworten:
Zum Extrahieren von Features können Sie normalerweise die oberste Ebene des Netzwerks vor der Ausgabe verwenden. Die Intuition ist, dass diese Merkmale linear trennbar sind, da die oberste Ebene nur eine logistische Regression ist.
Für GANs können Sie die Funktionen des Diskriminators verwenden. Diese Merkmale sollen eine Wahrscheinlichkeit geben, wenn die Eingabe aus dem Trainingsdatensatz "echte Bilder" stammt. In Radfords DCGAN-Artikel verwenden sie alle Faltungsschichten des Diskriminators und führen für CIFAR-10 eine Extraktionsfunktion für die maximale Pooling-Schicht aus.
quelle
Kennys Antwort ist richtig - wenn Sie Faltungs- D verwenden , kann die Ausgabe von Ebenen vor der Dichte als Merkmale dienen. Meine Intuition ist, dass es für AC-GANs (oder ähnliche Architekturen, bei denen D Eingaben klassifiziert und zusätzlich dazu bestimmt, ob sie gefälscht oder echt sind) besser funktioniert.
Es gibt einen Ansatz namens BiGAN, der eine Encoder- Komponente hinzufügt , die generierte und trainierende Samples der latenten Verteilung z zuordnen kann, die zum "Initialisieren" des Generators verwendet wird. Autoren zeigen, dass es effektiv als Funktionsumfang für Transferlernen und andere Aufgaben verwendet werden kann.
quelle
Da das GAN aus zwei Teilen besteht - dem Generator und dem Diskriminator - gibt es zwei Möglichkeiten, das GAN als Merkmalsextraktor zu verwenden:
Der zweite Weg ist kontroverser. Einige Studien [1] gingen davon aus, dass das Ziel des Diskriminators, die erzeugten Proben von den realen Proben zu unterscheiden, intuitiv nur auf den Unterschied zwischen diesen beiden Arten von Proben abzielt. Sinnvoll ist jedoch der Unterschied zwischen realen Stichproben, dh den Stichproben, die von den nachgelagerten Aufgaben verwendet werden.
Ich habe versucht, dies zu untersuchen, und festgestellt, dass das extrahierte Merkmal in zwei orthogonale Teilräume zerlegt werden kann. Der erste Raum trägt zur Diskriminatoraufgabe bei, während der zweite frei davon ist. Da in den meisten Fällen die Merkmale, die zur Unterscheidung der realen Abtastwerte von den erzeugten verwendet werden, Rauschen sind, ist der zweite Merkmalsraum rauschfrei. Aus dieser Perspektive werden die im zweiten Unterraum enthaltenen rauschfreien Merkmale funktionieren, obwohl sich die Aufgabe des Diskriminators nicht auf den Unterschied zwischen realen Abtastwerten konzentriert, die für die nachgeschalteten Aufgaben nützlich sind.
[1] Jost Tobias Springenberg. Unüberwachtes und halbüberwachtes Lernen mit kategorisch generativen kontradiktorischen Netzwerken. arXiv: 1511.06390 [cs, stat], April 2016. arXiv-Vorabdruck. arXiv: 1511.06390 [stat.ML]. Ithaca, NY: Cornell University Library.
quelle