Der Discriminator in einer GAN ist einfach ein Klassifikator. Es wird versucht, echte Daten von den vom Generator erstellten Daten zu unterscheiden. Es kann jede Netzwerkarchitektur verwendet werden, die für die zu klassifizierenden Daten geeignet ist.
Abbildung 1: Backpropagation beim Training des Discriminators
Trainingsdaten für Diskriminator
Die Trainingsdaten des Diskriminators stammen aus zwei Quellen:
- Echte Daten, z. B. echte Bilder von Personen. Der Discriminator verwendet diese Instanzen während des Trainings als positive Beispiele.
- Vom Generator erstellte Instanzen mit Fake-Daten. Der Discriminator verwendet diese Instanzen während des Trainings als negative Beispiele.
In Abbildung 1 stehen die beiden Felder „Beispiel“ für diese beiden Datenquellen, die in den Diskriminator eingespeist werden. Während des Trainings des Discriminators wird der Generator nicht trainiert. Die Gewichte bleiben konstant, während Beispiele für das Training des Discriminators erstellt werden.
Diskriminator trainieren
Der Discriminator ist mit zwei Verlustfunktionen verbunden. Während des Diskriminatortrainings ignoriert der Diskriminator den Generatorverlust und verwendet nur den Diskriminatorverlust. Wir verwenden den Generatorausfall beim Generatortraining, wie im nächsten Abschnitt beschrieben.
Während des Diskriminatortrainings:
- Der Diskriminator klassifiziert sowohl echte als auch gefälschte Daten aus dem Generator.
- Mit dem Diskriminatorverlust wird der Diskriminator dafür bestraft, dass er eine echte Instanz als Fälschung oder eine gefälschte Instanz als echt eingestuft hat.
- Der Diskriminator aktualisiert seine Gewichte durch Backpropagation vom Diskriminatorverlust durch das Diskriminatornetzwerk.
Im nächsten Abschnitt sehen wir uns an, warum der Generatorausfall mit dem Diskriminator zusammenhängt.