Grundlegendes zur GAN-Verlustfunktion

16

Ich kämpfe darum, die GAN-Verlustfunktion zu verstehen, wie sie in " Grundlegendes zu generativen kontradiktorischen Netzwerken" (einem Blogbeitrag von Daniel Seita) beschrieben wird.

Beim Standard-Cross-Entropy-Loss haben wir eine Ausgabe, die eine Sigmoid-Funktion und eine resultierende binäre Klassifikation durchlaufen hat.

Sieta Staaten

Somit erhalten wir für [jeden] Datenpunkt und seine Beschriftung die folgende Verlustfunktion ...x1

H((x1,y1),D)=-y1LogD(x1)-(1-y1)Log(1-D(x1))

Dies ist nur das Protokoll der Erwartung, was Sinn macht, aber wie können wir in der GAN-Verlustfunktion die Daten aus der wahren Verteilung und die Daten aus dem generativen Modell in derselben Iteration verarbeiten?

Versuche zu lernen
quelle

Antworten:

5

Der Fokus dieser Frage

"Wie können ... wir die Daten aus der wahren Verteilung und die Daten aus dem generativen Modell in derselben Iteration verarbeiten?

Analyse der grundlegenden Publikation

Der Doktorand Daniel Sieta referenziert auf der referenzierten Seite „ Generative Adversarial Networks (2017) verstehen“ korrekt die Generativen Adversarial Networks, Goodfellow, Pouget-Abadie, Mirza, Xu, Warde-Farley, Ozair, Courville und Bengio, Juni 2014 . Es heißt abstrakt: "Wir schlagen einen neuen Rahmen für die Schätzung generativer Modelle über einen kontroversen Prozess vor, in dem wir gleichzeitig zwei Modelle trainieren ..." In diesem Originalpapier werden zwei Modelle definiert, die als MLPs (Multilayer Perceptrons) definiert sind.

  • Generatives Modell, G
  • Diskriminierungsmodell, D

Diese beiden Modelle werden so gesteuert, dass das eine eine Form der Gegenkopplung zum anderen liefert, daher der Begriff „kontrovers“.

  • G ist darauf trainiert, die Datenverteilung einer Reihe von Beispielen gut genug zu erfassen, um D zu täuschen.
  • D wird darauf trainiert, herauszufinden, ob es sich bei seinen Eingaben um Gs Mocks oder um die Beispielsätze für das GAN-System handelt.

(Die Beispielsätze für das GAN-System werden manchmal als reale Stichproben bezeichnet, aber sie sind möglicherweise nicht realer als die generierten. Beide sind numerische Arrays in einem Computer, wobei eines einen internen Ursprung und das andere einen externen Ursprung hat (Ob die externen von einer Kamera stammen, die auf eine physische Szene gerichtet ist, ist für den GAN-Betrieb nicht relevant.)

Wahrscheinlich ist das Täuschen von D gleichbedeutend mit der Maximierung der Wahrscheinlichkeit, dass D so viele falsch-positive und falsch-negative Ergebnisse generiert, wie Kategorisierungen korrekt sind, und zwar jeweils 50%. In der Informationswissenschaft bedeutet dies, dass die Informationsgrenze D von G gegen 0 geht, wenn t gegen unendlich geht. Es ist ein Prozess zur Maximierung der Entropie von G aus der Perspektive von D, daher der Begriff der Kreuzentropie.

Wie Konvergenz erreicht wird

Weil die Verlustfunktion, die aus Sietas Schreiben von 2017 in der Frage hervorgeht, die von D ist, um die Kreuzentropie (oder Korrelation) zwischen den beiden Verteilungen zu minimieren, wenn sie auf den vollständigen Satz von Punkten für einen gegebenen Trainingszustand angewendet wird.

H((x1,y1),D)=1D(x1)

Es gibt eine separate Verlustfunktion für G, um die Kreuzentropie zu maximieren. Beachten Sie, dass das System über ZWEI Ebenen der Trainingsgranularität verfügt.

  • Das Spiel bewegt sich in einem Zwei-Spieler-Spiel
  • Das der Trainingsmuster

Diese erzeugen eine verschachtelte Iteration mit der äußeren Iteration wie folgt.

  • Das Training von G erfolgt unter Verwendung der Verlustfunktion von G.
  • Mock-Eingabemuster werden aus G in seinem aktuellen Trainingszustand generiert.
  • Das Training von D erfolgt unter Verwendung der Verlustfunktion von D.
  • Wiederholen, wenn die Kreuzentropie noch nicht ausreichend maximiert ist, D kann immer noch unterscheiden.

Als D endlich das Spiel verliert, haben wir unser Ziel erreicht.

  • G hat die Trainingsdatenverteilung wiederhergestellt
  • D wurde auf Ineffektivität reduziert ("1/2 Wahrscheinlichkeit überall")

Warum gleichzeitiges Training notwendig ist

Wenn die beiden Modelle nicht vor und zurück trainiert würden, um die Parallelität zu simulieren, würde bei der in der Veröffentlichung von 2014 beanspruchten einzigartigen Lösung keine Konvergenz in der gegnerischen Ebene (der äußeren Iteration) auftreten.

Mehr Informationen

Über die Frage hinaus ist der nächste Punkt, der in Sietas Artikel von Interesse ist, dass "eine schlechte Auslegung der Verlustfunktion des Generators" zu unzureichenden Gradientenwerten führen kann, um den Abstieg zu leiten und eine sogenannte Sättigung zu erzeugen. Die Sättigung ist einfach die Reduzierung des Rückkopplungssignals, das den Abstieg bei der Rückausbreitung zu chaotischem Rauschen führt, das durch die Gleitkommarundung entsteht. Der Begriff stammt aus der Signaltheorie.

Ich schlage vor, das Paper von Goodfellow et alia (den erfahrenen Forschern) aus dem Jahr 2014 zu studieren , um mehr über die GAN-Technologie zu erfahren und nicht die Seite 2017.

Douglas Daseeco
quelle
2

Beginnen wir am Anfang. GANs sind Modelle, die lernen können, Daten zu erstellen, die den von uns angegebenen Daten ähnlich sind.

Wenn Sie ein anderes generatives Modell als ein GAN trainieren, ist die wahrscheinlich einfachste Verlustfunktion der mittlere quadratische Fehler (Mean Squared Error, MSE).

Bitte erlauben Sie mir, Ihnen ein Beispiel zu geben ( Trickot L 2017 ):

Angenommen, Sie möchten Katzen erzeugen. Sie könnten Ihre Modellbeispiele von bestimmten Katzen auf Fotos geben. Ihre Wahl der Verlustfunktion bedeutet, dass Ihr Modell jede Katze genau reproduzieren muss, um nicht bestraft zu werden.

Das wollen wir aber nicht unbedingt! Sie möchten nur, dass Ihr Modell Katzen hervorbringt. Jede Katze wird es tun, solange es sich um eine plausible Katze handelt. Sie müssen also Ihre Verlustfunktion ändern.

Welche Funktion könnte jedoch konkrete Pixel außer Acht lassen und sich darauf konzentrieren, Katzen auf einem Foto zu erkennen?

Das ist ein neuronales Netzwerk. Dies ist die Rolle des Diskriminators in der GAN. Die Aufgabe des Diskriminators ist es, zu bewerten, wie plausibel ein Bild ist.

In dem von Ihnen zitierten Aufsatz " Generative Adversarial Networks" (Daniel S 2017) werden zwei wichtige Erkenntnisse aufgeführt.

Haupteinsicht 1: Die Verlustfunktion des Diskriminators ist die Kreuzentropieverlustfunktion.

Wichtigste Erkenntnis 2: Verstehen, wie sich die Gradientensättigung möglicherweise negativ auf das Training auswirkt. Die Gradientensättigung ist ein allgemeines Problem, wenn die Gradienten zu klein (dh Null) sind, um etwas zu lernen.

Um Ihre Frage zu beantworten, müssen wir die zweite wichtige Erkenntnis näher erläutern.

Im Zusammenhang mit GANs kann es zu einer Gradientensättigung kommen, weil die Verlustfunktion des Generators schlecht ausgelegt ist. Diese „wichtige Erkenntnis“ basiert also auf dem Verständnis der Kompromisse zwischen den verschiedenen Verlustfunktionen für den Generator.

Das in dem Papier implementierte Design löst das Verlustfunktionsproblem, indem es eine sehr spezifische Funktion aufweist (um zwischen zwei Klassen zu unterscheiden). Der beste Weg, dies zu tun, ist die Verwendung von Kreuzentropie (Insight 1). Wie der Blog-Beitrag sagt:

Die Kreuzentropie ist eine große Verlustfunktion, da sie zum Teil dazu dient, das Lernen zu beschleunigen und eine Gradientensättigung nur dann zu vermeiden, wenn der Klassifikator korrekt ist.

Wie in den Kommentaren des Blogposts klargestellt:

Die Erwartung [in der Kreuzentropiefunktion] ergibt sich aus den Summen. Wenn Sie sich die Definition der Erwartung für eine diskrete Zufallsvariable ansehen, werden Sie feststellen, dass Sie über verschiedene mögliche Werte der Zufallsvariablen summieren müssen, wobei Sie jede mit ihrer Wahrscheinlichkeit abwägen. Hier sind die Wahrscheinlichkeiten jeweils nur 1/2, und wir können sie als vom Generator oder Diskriminator stammend behandeln.

Seth Simba
quelle
Bei der Frage wurde nicht gefragt, was für die ANNs als Verlustfunktion am einfachsten zu verwenden ist. Die Einzelheiten der Mathematik waren für @tryingtolearn unklar und das Zitieren des Studenten ohne jegliche Klarstellung ist nicht klar.
FauChristian
1

Sie können eine Kombination aus zEingabe und xEingabe als eine einzige Stichprobe behandeln und bewerten, wie gut der Diskriminator die Klassifizierung der einzelnen Werte durchgeführt hat.

Dies ist der Grund, warum der Beitrag später einen einzelnen yin zwei Teile aufteilt E(p~data)und E(z)- im Grunde haben Sie unterschiedliche Erwartungen yfür jeden der Diskriminatoreingänge und Sie müssen beide gleichzeitig messen, um zu bewerten, wie gut der Diskriminator funktioniert.

Aus diesem Grund wird die Verlustfunktion als Kombination aus der positiven Klassifizierung des realen Eingangs und der negativen Klassifizierung des negativen Eingangs verstanden.

Alpha
quelle