GANs versuchen, eine Wahrscheinlichkeitsverteilung nachzuahmen. Daher sollten sie Verlustfunktionen verwenden, die den Abstand zwischen der Verteilung der vom GAN generierten Daten und der Verteilung der tatsächlichen Daten widerspiegeln.
Wie erfassen Sie den Unterschied zwischen zwei Verteilungen in GAN-Verlustfunktionen? Diese Frage ist ein aktives Forschungsgebiet und es wurden viele Ansätze vorgeschlagen. Wir befassen uns hier mit zwei gängigen GAN-Verlustfunktionen, die beide in TF-GAN implementiert sind:
- Minimax-Verlust: Die Verlustfunktion, die in dem Artikel verwendet wurde, in dem GANs vorgestellt wurden.
- Wasserstein-Verlust: Die Standardverlustfunktion für TF-GAN-Schätzer. Wurde erstmals 2017 in einem Artikel beschrieben.
TF-GAN implementiert auch viele andere Verlustfunktionen.
Eine oder zwei Verlustfunktionen?
Ein GAN kann zwei Verlustfunktionen haben: eine für das Generatortraining und eine für das Diskriminiertraining. Wie können zwei Verlustfunktionen zusammenarbeiten, um einen Abstandsmaßstab zwischen Wahrscheinlichkeitsverteilungen widerzuspiegeln?
Bei den hier betrachteten Verlustfunktionen stammen die Verluste für Generator und Discriminator aus einem einzigen Maß für die Entfernung zwischen Wahrscheinlichkeitsverteilungen. Bei beiden Schemes kann der Generator jedoch nur einen Term in der Entfernungsmessung beeinflussen: den Term, der die Verteilung der gefälschten Daten widerspiegelt. Daher wird während des Generatortrainings der andere Term, der die Verteilung der tatsächlichen Daten widerspiegelt, entfernt.
Die Verluste von Generator und Discriminator sehen am Ende unterschiedlich aus, obwohl sie aus einer einzigen Formel abgeleitet werden.
Minimax-Verlust
In dem Artikel, in dem GANs vorgestellt wurden, versucht der Generator, die folgende Funktion zu minimieren, während der Discriminator versucht, sie zu maximieren:
In dieser Funktion:
D(x)
ist die Schätzung des Diskriminators für die Wahrscheinlichkeit, dass die echte Dateninstanz x echt ist.- Ex ist der erwartete Wert für alle tatsächlichen Dateninstanzen.
G(z)
ist die Ausgabe des Generators bei gegebenem Rauschen z.D(G(z))
ist die Schätzung des Diskriminators für die Wahrscheinlichkeit, dass eine gefälschte Instanz echt ist.- Ez ist der Erwartungswert aller zufälligen Eingaben in den Generator (d. h. der Erwartungswert aller generierten gefälschten Instanzen G(z)).
- Die Formel leitet sich aus der Kreuzentropie zwischen der tatsächlichen und der generierten Verteilung ab.
Der Generator kann den Term log(D(x))
in der Funktion nicht direkt beeinflussen. Für den Generator entspricht das Minimieren des Verlusts also dem Minimieren von log(1 -
D(G(z)))
.
Eine Implementierung dieser Verlustfunktion in TF-GAN finden Sie unter minimax_discriminator_loss und minimax_generator_loss.
Modifizierter Minimax-Verlust
Im ursprünglichen GAN-Artikel wird darauf hingewiesen, dass die oben genannte Minimax-Verlustfunktion dazu führen kann, dass der GAN in den frühen Phasen des GAN-Trainings stecken bleibt, wenn die Aufgabe des Discriminators sehr einfach ist. Daher wird in dem Artikel vorgeschlagen, den Generatorverlust so zu ändern, dass der Generator versucht, log D(G(z))
zu maximieren.
Eine Implementierung dieser Änderung finden Sie in TF-GAN unter modified_generator_loss.
Verlust von Wasserstein
Standardmäßig verwendet TF-GAN den Wasserstein-Verlust.
Diese Verlustfunktion basiert auf einer Modifikation des GAN-Schemas (genannt „Wasserstein GAN“ oder „WGAN“), bei der der Discriminator keine Instanzen klassifiziert. Für jede Instanz wird eine Zahl ausgegeben. Diese Zahl muss nicht kleiner als 1 oder größer als 0 sein.Daher können wir 0,5 nicht als Schwellenwert verwenden, um zu entscheiden, ob eine Instanz echt oder gefälscht ist. Beim Training des Diskriminators wird lediglich versucht, die Ausgabe für echte Instanzen größer als für gefälschte Instanzen zu machen.
Da er nicht wirklich zwischen echt und unecht unterscheiden kann, wird der WGAN-Diskriminator eigentlich als „Kritiker“ und nicht als „Diskriminator“ bezeichnet. Diese Unterscheidung ist von theoretischer Bedeutung, aber für praktische Zwecke können wir sie als Bestätigung dafür betrachten, dass die Eingaben für die Verlustfunktionen keine Wahrscheinlichkeiten sein müssen.
Die Verlustfunktionen selbst sind täuschend einfach:
Kritikverlust: D(x) - D(G(z))
Der Discriminator versucht, diese Funktion zu maximieren. Mit anderen Worten: Es wird versucht, den Unterschied zwischen der Ausgabe auf echten Instanzen und der Ausgabe auf gefälschten Instanzen zu maximieren.
Generatorausfall: D(G(z))
Der Generator versucht, diese Funktion zu maximieren. Mit anderen Worten: Es versucht, die Ausgabe des Discriminators für seine gefälschten Instanzen zu maximieren.
Bei diesen Funktionen gilt:
D(x)
ist die Ausgabe des Kritikers für eine reale Instanz.G(z)
ist die Ausgabe des Generators bei gegebenem Rauschen z.D(G(z))
ist die Ausgabe des Kritikers für eine gefälschte Instanz.- Das Ergebnis von Kritiker D muss nicht zwischen 1 und 0 liegen.
- Die Formeln basieren auf dem Earth Mover’s Distance zwischen der tatsächlichen und der generierten Verteilung.
In TF-GAN finden Sie unter wasserstein_generator_loss und wasserstein_discriminator_loss Implementierungen.
Voraussetzungen
Die theoretische Begründung für den Wasserstein-GAN (oder WGAN) erfordert, dass die Gewichte im gesamten GAN gekürzt werden, damit sie in einem begrenzten Bereich bleiben.
Vorteile
Wasserstein-GANs sind weniger anfällig für das Einfrieren als minimax-basierte GANs und vermeiden Probleme mit verschwindenden Gradienten. Der Earth Mover Distance hat außerdem den Vorteil, dass es sich um einen echten Messwert handelt: ein Maß für die Entfernung in einem Raum von Wahrscheinlichkeitsverteilungen. Die Kreuzentropie ist in diesem Sinne kein Messwert.