Ein generatives kontradiktorisches Netzwerk (Generative Adversarial Network, GAN) besteht aus zwei Teilen:
- Der Generator lernt, plausible Daten zu generieren. Die generierten Instanzen werden zu negativen Trainingsbeispielen für den Discriminator.
- Der Diskriminator lernt, die gefälschten Daten des Generators von echten Daten zu unterscheiden. Der Discriminator bestraft den Generator für das Erzeugen von unglaubwürdigen Ergebnissen.
Zu Beginn des Trainings erzeugt der Generator offensichtlich gefälschte Daten und der Discriminator lernt schnell, diese zu erkennen:
Im Laufe des Trainings nähert sich der Generator immer mehr einer Ausgabe, die den Diskriminator täuschen kann:
Wenn das Training des Generators gut läuft, kann der Diskriminator immer schlechter zwischen echt und unecht unterscheiden. Es beginnt, gefälschte Daten als echt zu klassifizieren, und die Genauigkeit nimmt ab.
Hier ist ein Bild des gesamten Systems:
Sowohl der Generator als auch der Diskriminator sind neuronale Netzwerke. Der Generatorausgang ist direkt mit dem Diskriminatoreingang verbunden. Durch Backpropagation liefert die Klassifizierung des Discriminators ein Signal, mit dem der Generator seine Gewichte aktualisiert.
Sehen wir uns die einzelnen Teile dieses Systems genauer an.