08 Generative Modelle Flashcards
Was ist ein generatives Modell
Ein Modell P mit dem wir Beispiele aus der Datenverteilung X erzeugen können
Dichteschätzung (zB mit GMM)
- Finden den Parameter abhängig von X mit EM-Algorithmus
- Erzeugen von Beispielen:
- Ziehen von Beispielen aus der kategorischen Verteilung
- Ziehen von Beispielen aus der entsprechenden Normalverteilung
Aber: GMMs sind nicht komplex genug um Bilder zu erzeugen
Kullback-Leibler Divergenz (KL Divergenz)
Die Kullback-Leibler Divergenz sagt uns, wie gut eine Wahrscheinlichkeitsverteilung Q die Wahrscheinlichkeitsverteilung P approximiert (definiert über Cross-Entropy minus Entropy)
Misst die Ähnlichkeit zwischen zwei Verteilungen
KL Divergenz lässt sich für diskrete und stetige Verteilungen durch Summenbildung oder Integration darstellen.
Eigenschaften der KL Divergenz
*nicht negativ.
D = 0, genau dann wenn P = Q
*nicht symmetrisch (aka keine Metrik)
D ( P || Q ) != D ( Q || P )
Jenson-Shennon Divergenz
basiert auf KL Divergenz, hat aber einen nützlichen Unterschied:
Symmetrie
Recap Auto-Encoder
Tunneln von Informationen durch ein Engstelle (latente Repräsentation)
Encoder und Decoder als NN (zB CNN) ausgelegt
Trainieren des Autoencoders über den Rekonstruktionsfehler. Braucht keine gelabelten Daten (unsupervised)
kann als initialisierung für überwachtes lernen verwendet werden
Anwendung: Entfernen von Rauschen (Denoising Autoencoder)
Information zu Rekonstruktion des Bildes steckt in den Gewichten von Encoder und Decoder
–> eignet sich nicht zum Erzeugen von neuen Daten
Variational Autoencoder (VAE)
Probabilistische “Variante” des Autoencoders
Idee ursprünglich aus der Varitional Bayesian Inference kommend
Anstatt den Input als eine fixe latente Repräsentation darzustellen, soll er auf eine Verteilung abgebildet werden.
Um neue Daten x aus der Verteilung aller Eingabedaten X zu erzeugen:
- Ziehe latente Variablen z(i) aus prior p(z)
- ziehe Datumx x(i) aus bedingter Verteilung p(x | z=z(i) )
Vor-/Nachteile VAE
Vorteile:
+ Recht einfaches Modell, stabil zu trainieren
+ Explizite Modellierung der Verteilung
+ Bietet sich als Featureextraktor für darauf aufbauende Modelle an
Nachteil:
- Erzeugt oft unscharfe Daten mit geringer Qualität
- Maximiert lediglich die untere Schranke der Likelihood
GAN (Generative Adversarial Networks)
- Generator und Diskriminator
Generator G
- erzeugt synthetische (fake) Beispiele gegeben einen latenten Inputvektor z
- durch Training sollen synthetische Beispiele möglichst gut die Datenverteilung der realen Daten approximieren um Diskriminator zu überlisten
- muss differenzierbar sein
- wird üblicherweise durch ein tiefes neuronales Netz umgesetzt
Diskriminator D
- schätzt die Warhscheinlichkeit dafür, ob ein Input aus dem realen stammt
- Durch Training soll Diskriminator möglichst gut zwischen realen und synthetischen Daten unterscheiden können
- muss differenzierbar sein
- wird üblicherweise durch tiefes NN umgesetzt.
Trainieren des GAN
Training des GANs ist formuliert als spieltheoretischer minimax-Algorithmus:
- Der Diskriminator versucht seinen Reward V(D,G) zu maximieren : Gradientenaufstieg
- Der Generator versucht den Reward des Diskriminators zu minimieren : Gradientenabstieg
Generator und Diskriminator werden gemeinsam trainiert
Nash-Gleichgewicht ist erreicht, wenn Diskriminator es nicht mehr schafft zu unterscheiden. D(x) = 1/2
Vor-/Nachteile GAN
Vorteile:
+ Tolle, hochqualitative Beispiele mit visueller Vielfalt
Nachteile:
- keine explizite Dichtefunktion
- vanishing Gradients
- Training schwierig und potenziell instabil, Nash-Gleichgewicht schwierig zu erreichen.