Zum Inhalt springen

Generative Adversarial Networks

aus AufEinWort, der freien Forschung
Dies ist eine alte Version dieser Seite, zuletzt bearbeitet am 21. Oktober 2024 um 06:15 Uhr durch Nikolaos (Diskussion | Beiträge) (Die Seite wurde neu angelegt: „<p>'''Generative Adversarial Networks''' (GAN, zu deutsch etwa „erzeugende gegnerische Netzwerke“) sind ein Konzept aus dem [https://de.wikipedia.org/wiki/Maschinelles_Lernen Maschinellen Lernen] und beschreiben ein [https://de.wikipedia.org/wiki/Framework Framework] für das Training von Netzwerken im Kontext von generativem Lernen bzw. [https://de.wikipedia.org/wiki/Un%C3%BCberwachtes_Lernen unüberwachtem Lernen]. Hierbei werden zwei [https://de.wi…“). Sie kann sich erheblich von der aktuellen Version unterscheiden.
(Unterschied) ← Nächstältere Version | Aktuelle Version (Unterschied) | Nächstjüngere Version → (Unterschied)

Generative Adversarial Networks (GAN, zu deutsch etwa „erzeugende gegnerische Netzwerke“) sind ein Konzept aus dem Maschinellen Lernen und beschreiben ein Framework für das Training von Netzwerken im Kontext von generativem Lernen bzw. unüberwachtem Lernen. Hierbei werden zwei Netzwerke, der Generator und der Diskriminator gegeneinander trainiert, wobei der Generator versucht Daten zu generieren, die einem ursprünglichen Datensatz sehr ähnlich sind, und der Diskriminator versucht echte und falsche Daten zu unterscheiden. Nach dem Training kann der Generator genutzt werden um Daten zu generieren die den ursprünglichen Daten sehr ähnlich sind.

GANs wurden 2014 von der Arbeitsgruppe um Ian Goodfellow vorgestellt[1] und waren ein sehr prominenter Ansatz im generativen Lernen mit vielen Varianten wie z.b. StyleGAN. In der aktuellen Forschung wird der GAN-ansatz oft zusätzlich mit anderen Ansätzen genutzt. So nutzt z.b. Stable Diffusion eine diskriminative Verlustfunktion im Training der first stage.

Eigenschaften

Generative Adversarial Networks bestehen aus zwei künstlichen neuronalen Netzwerken, die ein Nullsummenspieldurchführen. Eines davon erstellt Kandidaten (der Generator), das zweite neuronale Netzwerk bewertet die Kandidaten (der Diskriminator).[1] Typischerweise bildet der Generator von einem Vektor aus latenten Variablen auf den gewünschten Ergebnisraum ab. Ziel des Generators ist es zu lernen, Ergebnisse nach einer bestimmten Verteilung zu erzeugen. Der Diskriminator wird hingegen darauf trainiert, die Ergebnisse des Generators von den Daten aus der echten, vorgegebenen Verteilung zu unterscheiden. Die Zielfunktion des Generators besteht dann darin, Ergebnisse zu erzeugen, die der Diskriminator nicht unterscheiden kann. Dadurch soll sich die erzeugte Verteilung nach und nach an die echte Verteilung angleichen.

Das Training der beiden Netzwerke erfolgt gleichzeitig. Wie im maschinellen Lernen üblich, wird für das Training eine ausreichend großer Datensatz benötigt, der aus echten Daten besteht. Dieser Datensatz wird nur vom Diskriminator gesehen. Während des Trainings erzeugt der Generator Vektoren im Zielbereich der Daten basierend auf zufällig gewählten latenten Variablen. Der Diskriminator erhält sowohl die generierten als auch die echten Daten und versucht zu raten aus welcher Gruppe die jeweiligen Daten kommen. In jedem Trainingsschritt werden dann die Gewichte des Diskriminators und des Generators durch Backpropagation verbessert, wobei die Verlustfunktion für den Diskriminator ist wie richtig der Diskriminator die Daten einsortiert hat und die Verlustfunktion des Generators ist wie sehr die generierten Daten vom Diskriminator als echte Daten missverstanden wurden. Durch dieses Vorgehen verbessern sich der Diskriminator und der Generator konstant gegenseitig, was bei einer ausreichenden Trainingszeit zu generierten Verteilungen führt, die nicht von echten zu unterscheiden sind.

Mathematische Definition

Probleme

Die Konvergenz von Generative Adversarial Networks ist im heutigen Stand häufig problematisch[2]. Während des Trainings kann es zu einem Moduskollaps kommen, wodurch der Generator nur noch eine begrenzte Anzahl hinreichend unterschiedlicher Stichproben erzeugt. Typischerweise sind GANs empfindlich gegenüber der Initialisierung der Gewichte sowie der Hyperparameter.