Der Diskriminator

Der Diskriminator in einem GAN ist einfach ein Klassifikator. Es wird versucht, echte Daten von den vom Generator erstellten Daten zu unterscheiden. Dabei kann jede Netzwerkarchitektur verwendet werden, die dem Datentyp entspricht, den es klassifiziert.

Ein Diagramm eines generativen kontradiktorischen Netzwerks. In der Mitte des Diagramms befindet sich ein Feld mit der Beschriftung „#disk9tor“'. In dieses Feld fließen von links zwei Zweige ein.  Der obere Zweig beginnt oben links im Diagramm mit einem Feld mit der Bezeichnung „reale Bilder“. Von diesem Zylinder führt ein Pfeil zu einem Kästchen mit der Bezeichnung 'Sample'. Ein Pfeil aus dem Feld mit der Bezeichnung „Beispiel“ wird in das Feld „Diskrepanz“ eingefügt. Der untere Zweig wird in das Feld „Discriminator“ eingefügt, das mit einem Feld namens „Zufällige Eingabe“ beginnt. Ein Pfeil führt vom Feld „Zufällige Eingabe“ zu einem Feld mit der Bezeichnung &Generator ' Ein Pfeil führt vom Feld „Generator“ zu einem zweiten Feld „Sample“. Ein Pfeil führt vom Feld „Beispiel“ zum Feld „Discriminator“. Auf der rechten Seite des Discriminator-Feldes führen zwei Pfeile zu zwei Kästchen auf der rechten Seite des Diagramms. Ein Pfeil führt zu einem Feld mit der Bezeichnung „Discriminator Loss'“. Der andere Pfeil führt zu einem Feld mit der Bezeichnung 'Generatorverlust'. Ein gelbes Feld mit einem nach links zeigenden Pfeil und dem Wort „Backpropagation“ wird um das Diskriminatorfeld und das Diskriminator-Verpackungsfeld herum gezeichnet, um anzugeben, dass die Rückpropagierung auf dem Teil des Systems in dem gelben Feld ausgeführt wird.

Abbildung 1: Rückpropagierung beim Training mit Diskriminatoren

Diskriminator-Trainingsdaten

Die Trainingsdaten des Diskriminators stammen aus zwei Quellen:

  • Echte Dateninstanzen, z. B. echte Bilder von Personen Der Diskriminator verwendet diese Instanzen während des Trainings als positive Beispiele.
  • Vom Generator erstellte gefälschte Dateninstanzen. Der Diskriminator verwendet diese Instanzen während des Trainings als negative Beispiele.

In Abbildung 1 werden die beiden Datenquellen durch die beiden „Beispiel“-Felder in den Diskriminator eingespeist. Während des Diskriminatortrainings wird der Generator nicht trainiert. Seine Gewichtungen bleiben konstant, während es Beispiele für das Training des Diskriminators liefert.

Diskriminator trainieren

Der Diskriminator stellt eine Verbindung zu zwei Verlustfunktionen her. Während des Diskriminatortrainings ignoriert der Diskriminator den Generatorverlust. Stattdessen wird der Diskriminatorverlust verwendet. Wir verwenden den Verlust des Generators während des Generatortrainings, wie im nächsten Abschnitt beschrieben.

Während der Schulung zu Diskriminatoren:

  1. Der Diskriminator klassifiziert sowohl reale als auch gefälschte Daten aus dem Generator.
  2. Der Verlust des Diskriminators bestraft den Diskriminator, wenn eine reale Instanz falsch oder eine falsche Instanz als echt klassifiziert wird.
  3. Der Diskriminator aktualisiert seine Gewichtung durch Rückpropagierung des Diskriminatorverlusts durch das Diskriminatornetzwerk.

Im nächsten Abschnitt sehen wir uns an, warum der Verlust des Generators eine Verbindung zum Diskriminator herstellt.