Generative Adversarial Networks

Eine neuere Art von Neuronalen Netzen sind die sog. Generative Adversarial Networks (GAN), sie wurdne erstmals 2014 von Goodfellow et al.[1] vorgestellt. Sie gehören zu den unsupervised Learning Methoden und werden bisher zumeist eingesetzt um künstlich neue Bilder von einer beliebigen Klassen zu erstellen. Ein GAN besteht aus zwei Teil-Netzwerken zum einen der Generator G und zum anderene der Diskriminator D. Der Generator erstellt mit einem zufällig generierten Vektor (auch Code genannt) einen Output der vom Diskriminator bewertet wird als authentisch oder generiert. Der Diskriminator hat Zugriff auf die Lerndaten und bewertet den generierten Output zusammen mit den vorhandenen Lerndaten und entscheidet wie echt das jeweilige Bild ist. Die beiden Netzte lernen gegenseitig voneinander und werden jeder für sich immer besser. Der Diskriminator kann besser falsche von richtigen Bildern unterscheiden und der Generator kann besser Bilder generieren die den Lerndaten entsprechen. Ein detaillierterer Einblick in die Technologie gibt es von Goodfellow selbst, in einer Video Präsentation[2].

Das untere Bild illustriert den Aufbau eines Generators, wie erwähnt wird zunächst ein Vektor mit zufälligen Werten initialisiert. Im Anschluss wird der Eingabevektor mittels Deconvolution Layer expandiert.

Beispiele

In der Arbeit von Reed et al.[3] wurden Lerndaten in Form von Bildern und korrespondierenden Bildunterschriften bereitgestellt. Die Bilder sind von Vögeln und die Bildunterschriften beschreiben das Aussehen der Vögel näher. Das Ergebnis ist verblüffend und zeigt welch großes Potential in dieser Technologie steckt.
In einer anderen Arbeit von Wu et al.[4] werden 3D Modelle erstellt von mehreren verschiedenen Klassen

Vögel generiert auf Basis einer Bildbeschriftung von Reed et al.[3]

Vektor-Arithmetrik

Ein GAN kann diverse Ausprägungen der Inputdaten erkennen. So kann ein Netz das auf Gesichter spezialisiert ist z.B. Mann und Frau unterscheiden und weitere Features wie eine Brille. Diese Ausprägungen spiegeln sich in individuellen Werten für den Eingabe-Vektor wieder. Es ist nun möglich Vektro Arithmetrik mit den individuellen Eingangs-Vektoren zu betreiben. In einem Beispiel von Goodfellow[4] wird hier „Mann mit Brille“ – „Mann“ + „Frau“ = „Frau mit Brille“ (siehe Abbildung).

Vektor-Artihmetrik mit GAN’s

Fazit

Ein GAN ist in der Lage zufällige Daten auf einen Input zu liefern. Für die Erstellung von Lerndaten für das Master-Projekt wäre ein GAN rein technisch nutzbar. Allerdings scheint die Methode mit 3DMM’s bessere Modelle zu generieren die realitätsnäher sind. Außerdem fällt die Regression auf Eingabeparameter für das 3DMM weg womit das Netz weniger effizient werden könnte.

Referenzen

[1] Generative Adversarial Nets von Goodfellow, Pouget-Abadie, Mirza, Xu, Warde-Farley, Ozair, Courville & Bengio
[2] Präsentation von Ian Goodfellow über GAN’s

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.