Einarbeitung - AlexanderMelde/3D-GAN GitHub Wiki
Theoretische Grundlagen / Glossar
Generative Adversial Networks (GANs)
Ein GAN ist ein künstliches Neuronales Netz, bestehend aus zwei Teilen:
(nach WI18(Quellenangaben))
Generative Model G
Generiert neue Daten aus zufälligem Rauschen heraus. Wird mit der Zeit besser darin Daten zu generieren, die ähnlich wie ein Trainingssatz sind, da es Rückmeldung vom Diskriminator bekommt, wie gut der Fake war.
Discriminative Model D
Berechnet die Wahrscheinlichkeit dafür, dass ein Datensatz von G kommt statt aus dem Trainingssatz. Wird mit der Zeit (ein wenig) besser darin, "Fakes" zu unterscheiden, da G aber auch immer besser wird bringt das keinen relativen Vorteil.
Generieren von Bildern
Dem Generative Model G kann eine Menge an Zufallsvektoren sowie eine Ziel-Klasse, in die es trainiert wird oder werden soll, gegeben werden, wobei G versucht es Stück für Stück realistischere Bilder zu generieren, welche von dem Diskriminator nicht mehr von echten Bildern unterschieden werden können.
Hierbei ist es wichtig, dass der Diskriminator nicht zu schnell lernt, die "Fakes" von den echten Bildern zu unterscheiden, da sonst der Generator kein eindeutiges Feedback bekommt, ob seine Objekte besser werden, da der Diskriminator all seine Bilder als "Fakes" durchschaut. In den Projekten wurden jeweils Gewichte für die Lernfortschritte gesetzt, sodass dieses Phänomen möglichst nicht auftaucht.
3D Gans
Gleiches Prinzip wie in 2D, allerdings können nicht nur Bilder sondern 3D-Objekte generiert werden.
Containerisierung mit Docker
Ähnlich wie eine vollständige Virtualisierung (zum Beispiel mit einer Virtuellen Maschine (VM)), allerdings werden Teile des Host-Systems wie Betriebssystem-Kernel mit dem Container geteilt.
Programme, die innerhalb des Containers laufen, können das Host-System nur dort beeinflussen, wo spezifiziert, verhindert versehentliche Änderungen am Host-System und ermöglicht parallelen Betrieb verschiedener Software- und Treiberversionen auf einem Host-System.
Die Docker-Version nvidia-docker ermöglicht eine volle GPU-Unterstützung innerhalb des Containers. GPU-Unterstützte Docker-Container sind daher im Bereich maschinellen Lernens deutlich schneller als herkömmliche VMs.
3D-Objekte
Voxel
"Volumetric Pixel", Gitterpunkt eines dreidimensionalen Gitters (analog Pixel in 2D-Bild)
Blender
Programm zur Visualisierung von 3D-Objekten