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.
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:
- Der Diskriminator klassifiziert sowohl reale als auch gefälschte Daten aus dem Generator.
- Der Verlust des Diskriminators bestraft den Diskriminator, wenn eine reale Instanz falsch oder eine falsche Instanz als echt klassifiziert wird.
- 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.